显示:Internet Explorer 的初始值
Posted
技术标签:
【中文标题】显示:Internet Explorer 的初始值【英文标题】:Display: initial for internet explorer 【发布时间】:2014-06-16 17:12:51 【问题描述】:我创建了一个在 Google Chrome 和 Firefox 中运行良好的网站,但是当我在 Internet Explorer 中运行它时遇到了问题。
所以,我的索引页上有 2 个幻灯片,但只有一个应该以特定的屏幕分辨率显示。我创建了一些媒体查询,因此我可以将display:none;
设置为在该分辨率下我不需要的幻灯片。为了让它再次出现,我使用了display:initial;
,但 Internet Explorer 不支持该命令。
我需要一种方法来显示我在 Internet Explorer 中使用 display:none;
不可见的内容。
PS:使用visibility:hidden;
不是一个选项,因为它不应该保留空间。
如果你能帮助我,请回复。 如果你不能,我还是感谢你阅读这篇文章。
代码来了;它可能会有所帮助(我不确定如何正确发布,抱歉):
<section id="containerGrotePage">
<div id="page">
<ul id="slider">
<li><img src="images/slideshow/image2.jpg" /></li>
<li><img src="images/slideshow/image1.jpg" /></li>
<li><img src="images/slideshow/image3.jpg" /></li>
<li><img src="images/slideshow/image4.jpg" /></li>
</ul>
</div>
</section>
<div id="pageKlein">
<ul id="sliderKlein">
<li id="kleineSlideLi">
<img id="fotoslideshowKlein" src="images/slideshow/image1.jpg" />
</li>
</ul>
<button onclick="slideshowKlein()" id="indexkleineSlideshowKnop">volgende</button>
</div>
这就是我在最小屏幕上所做的:
#containerGrotePage
display:none;
#page
display:none;
#kleineSlideLi
background-color:black;
padding: 10px 50px 10px 50px;
#fotoslideshowKlein
width:90%;
margin-left:4%;
border: 1px solid black;
#indexkleineSlideshowKnop
width:90%;
margin-top:1%;
margin-left:4%;
第一次媒体查询最小:440px
@media only screen and (min-width:440px)
#container
margin-top:3%;
/*--slideshow--*/
#page
display:initial;
width:600px;
margin:50px auto;
#slider
width:600px;
height:250px;
/*IE bugfix*/
padding:0;
margin:0;
媒体查询最小值:610px
#slider li
list-style:none;
#containerGrotePage
display:initial;
display:block;
width:600px;
margin-top:2%;
margin-left:auto;
margin-right:auto;
#pageKlein
display:none;
#page
display:initial;
width:600px;
margin:50px auto;
#slider
width:600px;
height:250px;
/*IE bugfix*/
padding:0;
margin:0;
媒体查询最小值:715px
#slider
width:600px;
height:250px;
/*IE bugfix*/
padding:0;
margin:0;
#slider li
list-style:none;
#page
width:600px;
margin:50px auto;
希望我提供的信息有用。
ContainerGrotePage 是大幻灯片,顺便说一句,pageklein 是小幻灯片。 我说荷兰语,所以有些名字对说英语的人来说可能没有意义。 :)
提前谢谢大家!
【问题讨论】:
什么版本的 Internet Explorer? 如果您也可以发布网站链接会更好。 @omegaiori 使用 Internet Explorer 版本 11。 @Kheema Pandey:我不能给你链接,网站还没有上线。工作正在进行中。 :) 为什么使用 display:initial 而不是简单的 display:block 或 display:visible ? 【参考方案1】:我找到了一个允许您在 IE 和 Chrome 中执行此操作的解决方案。 Here,滚动到底部。
长话短说,IE doesn't acceptdisplay = "initial"
。所以诀窍是用display = ""
代替。即,
if(...)
a.style.display = "none";
b.style.display = "";
else
a.style.display = "";
b.style.display = "none";
【讨论】:
请注意,这与设置值initial
并不完全相同,但是这更有可能与读者试图做的一致。详情请见this question。【参考方案2】:
这个函数在一个css文件中,如果你需要设置初始(两行):
显示:内联;
显示:初始;
【讨论】:
否决:误导。这里的显示初始值不被浏览器解释【参考方案3】:有同样的问题,并且 display: block 或 display: inline 将在 IE 中显示内容。但是,我们使用类来响应地隐藏/显示布局内容,并且需要有两组类,一组用于块,一组用于内联内容。
考虑到 display: none 和 display: initial 在非 IE 浏览器中工作正常(在 windows、mac、android 和 iPhone 上测试了 firefox/chrome/safari)时,这没有意义。
最后,我发现使用 jQuery $(".class").hide() 和 $(".class").show() 在最初在页面加载,然后从窗口调整大小事件处理程序中重新调用。
【讨论】:
您可以使用相同的类(如引导程序.hide
/.show
),但只需根据标签名称使用不同的 display
值(div.hide
、span.hide
等) .【参考方案4】:
你可以只使用hidden
属性:
a.setAttribute('hidden', '')
b.removeAttribute('hidden')
所有主流浏览器都支持它,包括 IE11。要获得 IE10 支持,您需要几行 CSS:
[hidden]
display: none;
【讨论】:
以上是关于显示:Internet Explorer 的初始值的主要内容,如果未能解决你的问题,请参考以下文章
Internet Explorer 缺乏占位符支持,特别是密码字段
noscript 仅显示在 Internet Explorer 中