Заставить вертикальную полосу прокрутки отображаться в IE8
вертикальная полоса не отображается в IE8, если страница недостаточно длинная. В FF есть обходной путь для этого
html {
overflow: -moz-scrollbars-vertical;
}
я попробовал следующее для IE8:overflow:scroll;
но полоса прокрутки появляется с обеих сторон. Я хочу, чтобы он был только вертикальным, а не горизонтальным. scroll-y не работает.
любое решение?
12 ответов
Я использую следующий:
html {
height: 101%; /* setting height to 101% forces scroll bar to display */
}
поместите его в свой div т. е.
style="overflow: -moz-scrollbars-vertical; overflow-y: scroll;
например :
<div class="left" style="overflow: -moz-scrollbars-vertical; overflow-y: scroll;
width: 230px; height: 500px;" >
другое решение-установить высоту тела на 100% - см. Пример до/после в http://www.iecustomizer.com/msmvp/HTMLHeightTest.htm
лучший ответ на сегодняшний день (май 2012) для принуждения вертикальной полосы прокрутки в safari, opera & firefox:
html {
height: 101%; /* setting height to 101% forces scroll bar to display */
}
html { min-height: 100%; padding-bottom: 1px; }
Opera была самой сложной и вставляла только вертикальную полосу прокрутки независимо от высоты страницы, если использовались оба HTML-тега выше.
Спасибо - Диана
html {height: 100%; margin-bottom: 1px;}
делает вашу страницу всегда 1px длиннее, поэтому полосы прокрутки всегда появляются и только добавляет прокрутку 1px к страницам, которые недостаточно длинны, чтобы зритель не думал, что им чего-то не хватает, и прокрутите вниз без причины. Простой и работает во всех браузерах основного потока (что я тестировал)
просто отмечая, что нормализуется.css рекомендуется:
html { overflow-y: scroll; }
, который несколько отличается от ответа Алека, но с тех пор за это. Пер HTML5 Boilerplate:
следующий стиль не включена по умолчанию из-за проблем которые могут возникнуть в Firefox в сочетании с плагинами и JS (как модальные глаголы или перетащите UIs), которые полагаются на вычисления размеров видового экрана.
и действительно, мой опыт в том, что это испортит некоторые плагины jQuery.
Я не уверен, почему различные решения min-height / margin-bottom / padding-bottom не являются предпочтительными, но они создают активную полосу прокрутки (хотя и с движением 1px), тогда как overflow-y создает отключенную полосу прокрутки, что лучше.
html {
height: 100%;
border-bottom: 1px #999 solid;
}
примечание: Я хотел заставить полосу прокрутки на страницах, которые я знаю, не нужно будет прокручивать. Это решение для такой ситуации.
решение Jonesy не работало для меня во всех браузерах, но я готов иметь незначительную серую полосу 1px, которая работает последовательно во всех браузерах. Для меня это лучше, чем показывать полный 1% extra (решение чипа). Дизайн мудрый, это даже не уступка, потому что это так незначительно-попробуйте и посмотрите, что я означать.
кроме того, это решение будет очень перспективной. Если вы хотите добавить пустое пространство, как и другие решения, неизвестно, какие оптимизации будут встроены в будущие браузеры, и я мог бы представить, что какой-то браузер обнаружит потерянное пустое пространство и устранит его (произошли странные вещи). Уступая 1px, вы заставляете браузер иметь дело с этим 1 пикселем независимо от того, что.
Ну см. мой код, datatable находится внутри 1 DIV
<div style="overflow-y: scroll; overflow-x: scroll; width: 44em; height: 17em;">
<p:dataTable id="dataTableDeposito" lazy="true" style="width: 1040px; height: 240px; "
selection="#{envioValijaView.selectedItems}"
emptyMessage="#{msg.tablaVaciaDeposito}"
value="#{envioValijaView.valijaManagedBean.valijaBean.listaDepositos}"
var="tablaDepositos"
rowKey="#{tablaDepositos.idDespositoCheque}">
<p:column sortBy="bancoBean.nombreBanco" headerText="#{label.fechaHora}" styleClass="texto_14" width="150">
<h:outputLabel style="font-size: 12px; text-align: center;" value="#{label.cantDepositos}"/>
</p:column>
<p:column sortBy="nroCataporte" headerText="#{label.nroCataporte}" styleClass="texto_14" disabledSelection="#{true}" width="150">
<p:commandLink action="#{envioValijaView.detalleDeposito}" value="#{tablaDepositos.idDespositoCheque}">
<f:setPropertyActionListener value="#{tablaDepositos}" target="#{envioValijaView.depositoChequeBean}"/>
</p:commandLink>
</p:column>
<p:column sortBy="nroCheque" headerText="#{label.cantiDepositos}" styleClass="texto_14" width="155">
<h:outputLabel value="#{label.montTotalDeposito}" styleClass="texto_12"/>
</p:column>
<p:column sortBy="monto" headerText="#{label.montoTotal}" styleClass="texto_14" width="150">
<h:outputText value="#{tablaDepositos.montoDeposito}" styleClass="texto_12">
<f:convertNumber pattern="#{envioValijaView.patronMoneda}"/>
</h:outputText>
</p:column>
<!-- Verificar -->
<p:column sortBy="monto" headerText="#{label.transportista}" styleClass="texto_14" width="150" >
<h:outputText value="#{tablaDepositos.montoDeposito}" styleClass="texto_12">
<f:convertNumber pattern="#{envioValijaView.patronMoneda}"/>
</h:outputText>
</p:column>
<p:column sortBy="monto" headerText="#{label.estado}" styleClass="texto_14" width="150">
<h:outputText value="#{tablaDepositos.montoDeposito}" styleClass="texto_12">
<f:convertNumber pattern="#{envioValijaView.patronMoneda}"/>
</h:outputText>
</p:column>
</p:dataTable>
</div>