不思議なスクロール動作家とチェックボックス、スクロール可能な部
-
19-09-2019 - |
質問
ている"multiselect"を制御することこんな感じになっている(しまいまして申し訳ありません長id"のid名は、ちょっとautogeneratedでも生成されるカスタムタグ):
<div class="default-skin-outer" id="myMapSelect_multiSelectOuterDiv">
<div class="default-control" id="myMapSelect_multiSelectControlDiv">
<span class="default-icon-check-text" id="myMapSelect_multiSelectControlCheckWrapperSpan">
<span class="default-icon default-icon-check" id="myMapSelect_multiSelectControlCheckIconSpan"></span><span class="default-icon default-icon-text" id="myMapSelect_multiSelectControlCheckTextSpan">Check All</span>
</span>
<span class="default-icon-uncheck-text" id="myMapSelect_multiSelectControlUncheckWrapperSpan">
<span class="default-icon default-icon-uncheck" id="myMapSelect_multiSelectControlUncheckIconSpan"></span><span class="default-icon default-icon-text" id="myMapSelect_multiSelectControlUncheckTextSpan">Uncheck All</span>
</span>
</div>
<div class="default-skin-inner" id="myMapSelect_multiSelectInnerDiv">
<ul class="default-multiselect">
<li class="default-multiselect">
<label class="default-label">
<input type="checkbox" value="0" class="default-checkbox" id="myMapSelect0" name="myMapSelect"> Zero
</label>
</li>
<li class="default-multiselect">
<label class="default-label">
<input type="checkbox" value="1" class="default-checkbox" id="myMapSelect1" name="myMapSelect"> One
</label>
</li>
<li class="default-multiselect">
<label class="default-label">
<input type="checkbox" value="2" class="default-checkbox" id="myMapSelect2" name="myMapSelect"> Two
</label>
</li>
<li class="default-multiselect">
<label class="default-label">
<input type="checkbox" value="3" class="default-checkbox" id="myMapSelect3" name="myMapSelect"> Three
</label>
</li>
<li class="default-multiselect">
<label class="default-label">
<input type="checkbox" value="4" class="default-checkbox" id="myMapSelect4" name="myMapSelect"> Four
</label>
</li>
<li class="default-multiselect">
<label class="default-label">
<input type="checkbox" value="5" class="default-checkbox" id="myMapSelect5" name="myMapSelect"> Five
</label>
</li>
<li class="default-multiselect">
<label class="default-label">
<input type="checkbox" value="6" class="default-checkbox" id="myMapSelect6" name="myMapSelect"> Six
</label>
</li>
<li class="default-multiselect">
<label class="default-label">
<input type="checkbox" value="7" class="default-checkbox" id="myMapSelect7" name="myMapSelect"> Seven
</label>
</li>
</ul>
</div>
</div>
CSS今回のものは:
div.default-skin-outer {
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
width: 300px;
height: auto;
padding: 2px;
background-color: #f0f0f0;
border: 1px solid #999999;
}
div.default-skin-inner {
overflow: auto;
width: 300px;
height: 100px;
}
div.default-control {
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
width: auto;
border: 1px solid #555555;
background-color: #999999;
color: #f0f0f0;
vertical-align: middle;
padding: 2px;
margin-bottom: 2px;
font-weight: bold;
overflow: hidden;
}
ul.default-multiselect {
padding: 0px;
margin: 0px;
white-space: nowrap;
}
ul.default-with-padding {
padding: 0px;
padding-left: 20px;
margin: 0px;
white-space: nowrap;
}
li.default-multiselect {
list-style-type: none;
}
label.default-label {
display: block;
padding: 2px;
}
input.default-checkbox {
width: 13px;
height: 13px;
padding: 0;
margin: 0;
vertical-align: bottom;
position: relative;
top: -1px;
*overflow: hidden;
}
span.default-icon {
background-image: url("/resources/authoring/jqueryui/custom-theme/images/ui-icons_ffffff_256x240.png");
display: inline-block;
height: 16px;
width: 16px;
overflow: hidden;
}
span.default-icon-text {
width: auto;
background: none;
}
span.default-icon-text:hover {
text-decoration: underline;
cursor: pointer;
}
span.default-icon-check-text {
float: left;
}
span.default-icon-uncheck-text {
float: right;
}
span.default-icon-check {
background-position: -64px -144px;
}
span.default-icon-uncheck {
background-position: -96px -128px;
}
この作品は美しくしています。のチェックボックスのスクロールな、スクロール可能な部です。が、そこにIE8では酷いものでした。
まず、余分なチェックボックスブリード外部のdiv.次に(これは本当に不思議なもの)を利用した場合にスクロールバーの文字の巻 が、チェックボックスのチェックしない.彼らは単なる文字絵。またgooglingのようなソリューションができなかったくあります。
よろしく!
更新
うにしていることが分かった場合を削除しますファンキーにチェックボックススタイリング:
vertical-align:bottom;
position:relative;
top: -1px;
*overflow: hidden;
です。だけにがっていないかを確認し レーベルチェックボックスを並べ適正に.
ねんどろいどとの互換性を示に関すIE8動の互換性モードになります。
への対応からコスタイルを継承し、スタイルのチェックボックスを継承す:
input {
border:1px solid #CFCFCF;
color:#000000;
font-family:Arial,Verdana,Sans-Serif;
font-size:12px;
padding-left:4px;
}
li.default-multiselect {
list-style-type:none;
}
ul.default-with-padding {
white-space:nowrap;
}
table {
empty-cells:show;
}
html, body {
line-height:16px;
}
などを満たすものがありませんことが可能に干渉...
解決
であったという不思議な相互作用の継承したスタイルや色をしてい定義されています。ることも明らかですジェイコブおよびx線のコメントからできた打このコードをページで描画アプローチにはIEにあります。
ることができたので行動を適切に取り position:relative
から input.default-checkbox
ます。
私はその奇妙な相互作用は、チェックボックスにチェックが入った位置づけを静的または絶対(たい)によりいない。少なくともい 考え その理由誰かが提供できるより良い理由の解明ならびにこれです。で除 position:relative
, ることができたの奇妙なスクロール-動作停止します。さてフィギュアに!
他のヒント
品切れしないようにしてほしいて position: fixed
設定したチェックボックスその他のスタイルシート.
として@rossisdead示唆され、 position: relative
をスクロール要素の解決の問題です。またの追加 position: relative
の親へのスクロール要素になります。