我在 JSFiddle 上尝试了一些带有 HTML 中无序列表的代码,我很生气地发现其中的项目符号<ul>
不会无缘无故地显示。在我的代码上尝试不同的东西时,我终于意识到我需要取消选中 jsfiddle 页面上的“规范化 css”选项。
在那之后,我用谷歌搜索了它实际上是什么,并从 W3C.org阅读了这个页面。这个页面只讨论变音符号和口音,我明白了。但是为什么没有在检查规范化 css 选项的情况下显示项目符号?如果您选择该选项,还会影响哪些其他事项?
谢谢你进来看看。
我在 JSFiddle 上尝试了一些带有 HTML 中无序列表的代码,我很生气地发现其中的项目符号<ul>
不会无缘无故地显示。在我的代码上尝试不同的东西时,我终于意识到我需要取消选中 jsfiddle 页面上的“规范化 css”选项。
在那之后,我用谷歌搜索了它实际上是什么,并从 W3C.org阅读了这个页面。这个页面只讨论变音符号和口音,我明白了。但是为什么没有在检查规范化 css 选项的情况下显示项目符号?如果您选择该选项,还会影响哪些其他事项?
谢谢你进来看看。
规范化 css 试图在呈现 html 元素时消除浏览器之间的差异。许多浏览器都有“预先设置”:元素p
有h
垂直边距,列表也有一些边距和填充。em
并且strong
标签有粗体字重。
所有这些预先设置都被重置,以便您在所有浏览器中拥有一致的工作基础。
JSFiddles normalize.css 看起来像这样:
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td {
margin:0;
padding:0;
}
table {
border-collapse:collapse;
border-spacing:0;
}
fieldset,img {
border:0;
}
address,caption,cite,code,dfn,em,strong,th,var {
font-style:normal;
font-weight:normal;
}
ol,ul {
list-style:none;
}
caption,th {
text-align:left;
}
h1,h2,h3,h4,h5,h6 {
font-size:100%;
font-weight:normal;
}
q:before,q:after {
content:'';
}
abbr,acronym { border:0;}
规范化 css 的意义值得商榷,因为您必须在样式表中手动重新声明每种样式(即使是那些有意义的预设,例如浏览器平等对待font-weight
的em
和标签上的简单设置)。strong
我使用了Eric Meyer 的 reset有一段时间,但停止使用它,因为它重置了太多需要再次重新声明的样式。IMO 不值得。
对于真正好的样式规范器,请查看http://html5boilerplate.com/中的 style.css 。
Normalize.css是一个众所周知的重置样式表,用于在浏览器之间对齐一些基本样式,以设置为开发的共同点。
一些开发人员发现它是多余的,或者可能更喜欢使用他们自己的重置样式表。许多现成的重置脚本可用,其中有著名的 Eric Mayer 的 reset.css(被BluePrint使用)和YUI2 的 stylesheet。
另请参阅SO 上关于最佳 CSS 重置和重置样式表的最佳集合的帖子。
在 jsfiddle 中使用的意义上的“规范化”意味着应用一组旨在清理事物的 CSS 规则。它通常被称为“CSS 重置”,这是一种有争议的技术。重要的是要意识到,当覆盖浏览器默认值时,它也可能会覆盖从 Web 诞生之初就存在的默认呈现,例如默认的顶部和底部边距以及ul
元素的一些缩进 - 以及默认的列表标记(项目符号) . 这取决于特定的“规范化”样式表使用,以及它的侵略性。
提到的 W3C 页面上描述的规范化与此无关。它处理字符的 Unicode 规范化,在字符级别发生的事情(当它发生时),一个相对理论的问题。