gpt4 book ai didi

html - 为什么IE7和IE8只会显示第一个标签的内容?

转载 作者:太空宇宙 更新时间:2023-11-03 23:52:56 24 4
gpt4 key购买 nike

我正在设计和开发网站,我遇到了以下问题请帮助我...!!!

我有三个选项卡,它在 IE9、Firefox、Chrome、Safari 和 Opera 上完美运行。

我只使用 CSS3 并且我不想要任何脚本语言并且想要在所有浏览器上完美地工作帮助我......

你可以看到here还有

我的 HTML 代码:

<article class="tabs">

<section id="tab1">
<h2><a href="#tab1">Tab 1</a></h2>
<p>This content appears on tab 1.</p>
</section>

<section id="tab2">
<h2><a href="#tab2">Tab 2</a></h2>
<p>This content appears on tab 2.</p>
</section>

<section id="tab3">
<h2><a href="#tab3">Tab 3</a></h2>
<p>This content appears on tab 3.</p>
</section>

</article>

&我的CSS代码是:

article.tabs
{
position: relative;
display: block;
width: 40em;
height: 15em;
margin: 2em auto;
}

article.tabs section
{
position: absolute;
display: block;
top: 1.8em;
left: 0;
height: 12em;
padding: 10px 20px;
background-color: #ddd;
border-radius: 5px;
box-shadow: 0 3px 3px rgba(0,0,0,0.1);
z-index: 0;
}

article.tabs section:first-child
{
z-index: 1;
}

article.tabs section h2
{
position: absolute;
font-size: 1em;
font-weight: normal;
width: 120px;
height: 1.8em;
top: -1.8em;
left: 10px;
padding: 0;
margin: 0;
color: #999;
background-color: #ddd;
border-radius: 5px 5px 0 0;
}

article.tabs section:nth-child(2) h2
{
left: 132px;
}

article.tabs section:nth-child(3) h2
{
left: 254px;
}

article.tabs section h2 a
{
display: block;
width: 100%;
line-height: 1.8em;
text-align: center;
text-decoration: none;
color: inherit;
outline: 0 none;
}

article.tabs section:target,
article.tabs section:target h2
{
color: #333;
background-color: #fff;
z-index: 2;
}

article.tabs section,
article.tabs section h2
{
-webkit-transition: all 500ms ease;
-moz-transition: all 500ms ease;
-ms-transition: all 500ms ease;
-o-transition: all 500ms ease;
transition: all 500ms ease;
}

提前致谢...!!

最佳答案

这里的问题是您使用的浏览器功能在 IE7/8 中不受支持。

  1. :first-child 在 IE7 中不可用。

  2. :nth-child() 在 IE7 或 IE8 中均不可用。

  3. :target 在 IE7 或 IE8 中不可用。

  4. transition 在 IE10 之前不可用。

  5. IE8 或更早版本不支持
  6. box-shadowborder-radiusrgba() 颜色。

  7. 最重要的是,您使用的是 sectionarticle 等 HTML5 标签,IE8 及更早版本不支持这些标签。

大多数这些问题都可以通过 polyfill 脚本解决,但既然您声明不想使用任何脚本,那么不幸的是您有点卡住了。

如果您真的不想使用任何脚本(例如,使用 div 标签而不是 sectionarticle),但你的代码的主要目的是提供一个使用 CSS :target 切换标签的标签界面,简短的回答是这不会在 IE8 或更早版本中工作,我不知道有任何非脚本替代方案。

所以我认为这里的重点是,如果你想支持 IE7/8,你必须使用一些 javascript 代码。

您可以使用 polyfill 脚本向后移植您正在使用的 CSS/HTML5 功能,这意味着支持这些功能的较新浏览器不必使用这些脚本,但较旧的浏览器将需要它们。对此感到抱歉。

有关 Polyfill 的更多信息:

“Polyfill 脚本”是范围广泛的 javascript 库的通用术语,这些库专门用于为旧版浏览器提供对新功能的支持(主要针对旧版 IE)。

每个 polyfill 脚本都是为支持特定的浏览器功能而编写的,因此对于像您这样的代码,您可能需要多个 polyfill 才能获得完整的功能对等。然而,在某些情况下,对于不太重要的功能,您可能只想保留它,这样旧的 IE 版本就无法获得所有功能——例如 border-radius 很好,但它赢了如果不支持,请关闭网站。

一些肯定能帮到你的 polyfills:

  • Selectivizr -- 添加对 CSS3 选择器的支持,例如 :nth-child():target

  • Modernizr -- 添加了对 HTML5 元素的支持,并为使用其他 polyfill 提供了一个特征检测框架。

  • CSS3Pie -- 添加对 border-radiusbox-shadow 等的支持。

还有一大堆 polyfill 脚本 listed here .随意浏览列表并选择您认为最有用的内容。

关于所有 polyfill,要记住的一件重要事情是它们不是浏览器的官方部分;它们只是某人编写的小型 JS 库。这意味着它们不能保证 100% 正常工作。它们可能会为作者解决问题,但与现代浏览器中的真实功能相比,它们的功能也可能存在缺失或差距。它们也可能会减慢速度并相互冲突(尤其是当您同时使用其中多个时)。

同样,您将不得不忍受这一点,因为当您想在旧浏览器中支持现代浏览器功能时,这就是事情的本质。向旧浏览器添加功能的方法是有限的。

最终,如果您真的需要使用现代功能,您可能需要完全停止支持某些旧版浏览器——尤其是 IE7。

关于html - 为什么IE7和IE8只会显示第一个标签的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19445253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com