- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些简单的 CSS 可以在 ul
中的 li
上应用负的 text-indent
值:
<style type="text/css">
ul.indent li { text-indent: -20px; padding-left: 20px; }
</style>
<!--[if lte IE 8 ]>
<style type="text/css">
ul.indent li { text-indent: -20px; padding-left: 0; margin-left: 20px; }
</style>
<![endif]-->
由于 Internet Explorer 8 及更低版本处理列表项边距和填充的方式与现代浏览器不同,因此我使用 IE8 及更低版本的条件注释来应用不同的填充和边距值。 (旁注:如果有人知道一种通用的、跨浏览器的 CSS 解决方案,可以在不使用条件注释的情况下获得一致的边距/填充,我洗耳恭听。我需要支持 IE6 及更高版本、Chrome、Firefox、Safari 和 Opera。 )
这是我的 HTML:
<ul>
<li>Lorem ipsum...</li>
</ul>
<ul class="indent">
<li>Lorem ipsum...</li>
</ul>
第一个列表完全没有样式(作为实验的对照),第二个列表使用上面定义的 CSS 类 (class="indent"
)。
这就是问题所在:上面的 HTML/CSS 在除 IE8 之外的所有浏览器中 都产生了一致的结果。这是我在浏览器中看到的:
我在 IE6、IE7、IE9、Chrome、Firefox、Safari 和 Opera 中看到左侧的内容。
我在 IE8 中看到了右侧的内容。注意以红色突出显示的区域。一旦将负文本缩进值添加到 CSS,IE8 似乎会在列表项元素符号和列表项文本之间抛出一堆额外的像素。
如何防止 IE8 添加这些额外的像素?
您可以在此处查看实际代码:http://jsfiddle.net/Kxb8v/
最佳答案
UL 和 LI 元素是 block 级元素……这可能就是它在浏览器级别上不可预测的原因。将该文本包装在 p 标记中,然后应用文本缩进怎么样,因为它不适用于 block 级元素。
<style type="text/css">
.indent { text-indent: -20px; padding-left: 20px; }
</style>
<ul>
<li><p class="indent">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce venenatis mi sit amet mauris varius ut viverra magna eleifend. Aliquam viverra, magna sed mollis adipiscing, libero mi adipiscing ante, ut hendrerit lacus leo id elit. Nulla commodo mi nec nulla ornare congue.</p></li>
</ul>
编辑
所以以防万一我的回答不清楚...除了包含文本之外,列表项还用于许多其他用途。一些站点使用它们进行布局。列表项还具有填充和属性,例如 list-style,可让您控制用于每个列表项的图像。
既然知道了这一点,那么要求列表项text-indent 似乎可以通过几种方式来处理。您可以缩进任何包含的文本,或者缩进可能指的是列表项本身,包括图像 ;) 我打赌这个决定由浏览器决定,因此在不同版本之间的处理方式可能不同。
希望这有助于阐明我的目标。
关于html - 为什么这个简单的列表项负文本缩进在除 IE8 之外的所有浏览器中都有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11040369/
对于这个简单的代码来说: int foo(void); int (*p)(void); p = foo; p = &foo; int a = p(); int b = (*p)(); 在上面的例子中,
我遇到了多个 ID 与 CSS 不工作的问题。 这是我的完整代码: /* Add a black bac
我正在开发一个使用 PDO 的应用程序。 我注意到,当绑定(bind)参数时,无论我在绑定(bind)参数变量上使用还是省略冒号,查询仍然有效。 例子: $sql = "SELECT * FROM `
我的代码过去曾经可以工作,但是现在结构大小突然变成了16个字节。它曾经是13个字节。我最近从Xcode 4.2升级到Xcode 4.3.1(4E1019)。 #pragma pack(1) struc
问候, 我在处理 mysql 异常时遇到了这个有趣的问题,其中引发的异常响应两个不同的异常名称。这是怎么发生的? -丹尼尔 #!/usr/bin/env ruby require 'rubygems'
这个问题已经有答案了: What are Rust's exact auto-dereferencing rules? (4 个回答) 已关闭 3 年前。 我很困惑为什么这个函数 get适用于 Vec
一般来说,我是 MVC 以及 JQuery 和 AJAX 的新手,我遇到了一个奇怪的问题。 我已经完成了构建练习网站的第一次试运行,在过去的几天里,我投入了时间来添加 JQuery 等,以使网站更具交
我是一名优秀的程序员,十分优秀!