IE 不会居中 <main> 而它的内容
IE won't center <main> and it's content
此 CSS 适用于 firefox 和 chrome,但由于某些奇怪的原因,它不适用于 IE
=(
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>I hate u, ie :p</title>
<style>
header>nav, main, footer>nav {
max-width: 500px;
padding: 0em;
margin: 0em auto;
}
header, footer { min-width: 100%; background-color: #c0c0c0;}
main { background-color: yellow; }
main>section, main>aside { display: inline-block; }
main>section { background-color: aqua; }
main>aside { background-color: pink; }
</style>
</head>
<body>
<header>
<nav>
<ul><li>Header is centered =)</li></ul>
</nav>
<nav>
<ul><li>Header (nemu 2) is centered =)</li></ul>
</nav>
</header>
<main>
<section>
<h1>Why IE won't center me?</h1>
</section>
<aside>
<p>Whosebug: please help me</p>
</aside>
</main>
<footer>
<nav>
<ul><li>Footer is centered =)</li></ul>
</nav>
</footer>
</body>
</html>
如果你能帮我解决这个问题,我将不胜感激,最好不要使用 adding/removing 元素。如果可能的话,我想保留当前的语义。如果没有,那好吧...
值得一提的是,如果我执行 <main><div>...</div></main>
之类的操作并添加 main>div { margin: 0em auto;}
IE(以及所有其他浏览器,正如预期的那样)居中 main
的内容。但就像我提到的,我不想破坏语义。
由于我没有足够的声誉,我post我的想法作为答案:
我的猜测是,您必须为 .main
添加 position: relative;
。
浏览器有一个 default.css
,其中包含您未设置的键的默认值。我认为(但没有检查)IE 的标准值与其他浏览器不同。这可能会导致问题。
IE 不支持主要元素:
我认为这意味着 main
元素没有默认样式,因此您必须添加它。大多数重置样式表会为更新的、更具语义的元素执行此操作。
将 display: block
添加到 main
的 CSS 选择器,它应该可以工作。
main {
display: block;
max-width: 500px;
margin: 0 auto;
}
IE 不支持主元素。但是,要使其正常工作,您只需设置 main { display:block; }
即可。这是对其他新 HTML5 元素的类似修复,例如 section 和 nav,它们不受支持,但可以通过添加 CSS.
来添加
此 CSS 适用于 firefox 和 chrome,但由于某些奇怪的原因,它不适用于 IE
=(
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>I hate u, ie :p</title>
<style>
header>nav, main, footer>nav {
max-width: 500px;
padding: 0em;
margin: 0em auto;
}
header, footer { min-width: 100%; background-color: #c0c0c0;}
main { background-color: yellow; }
main>section, main>aside { display: inline-block; }
main>section { background-color: aqua; }
main>aside { background-color: pink; }
</style>
</head>
<body>
<header>
<nav>
<ul><li>Header is centered =)</li></ul>
</nav>
<nav>
<ul><li>Header (nemu 2) is centered =)</li></ul>
</nav>
</header>
<main>
<section>
<h1>Why IE won't center me?</h1>
</section>
<aside>
<p>Whosebug: please help me</p>
</aside>
</main>
<footer>
<nav>
<ul><li>Footer is centered =)</li></ul>
</nav>
</footer>
</body>
</html>
如果你能帮我解决这个问题,我将不胜感激,最好不要使用 adding/removing 元素。如果可能的话,我想保留当前的语义。如果没有,那好吧...
值得一提的是,如果我执行 <main><div>...</div></main>
之类的操作并添加 main>div { margin: 0em auto;}
IE(以及所有其他浏览器,正如预期的那样)居中 main
的内容。但就像我提到的,我不想破坏语义。
由于我没有足够的声誉,我post我的想法作为答案:
我的猜测是,您必须为 .main
添加 position: relative;
。
浏览器有一个 default.css
,其中包含您未设置的键的默认值。我认为(但没有检查)IE 的标准值与其他浏览器不同。这可能会导致问题。
IE 不支持主要元素:
我认为这意味着 main
元素没有默认样式,因此您必须添加它。大多数重置样式表会为更新的、更具语义的元素执行此操作。
将 display: block
添加到 main
的 CSS 选择器,它应该可以工作。
main {
display: block;
max-width: 500px;
margin: 0 auto;
}
IE 不支持主元素。但是,要使其正常工作,您只需设置 main { display:block; }
即可。这是对其他新 HTML5 元素的类似修复,例如 section 和 nav,它们不受支持,但可以通过添加 CSS.