【发布时间】:2012-02-04 11:36:26
【问题描述】:
我的内容中有很多预设样式的图像,例如 <img src="" style="float:left"> 或 <img src="" style="float:right">
我想根据它们的浮动方式为它们设置不同的边距。是否可以为带有预设样式的图片设置 CSS 样式?
谢谢!
【问题讨论】:
我的内容中有很多预设样式的图像,例如 <img src="" style="float:left"> 或 <img src="" style="float:right">
我想根据它们的浮动方式为它们设置不同的边距。是否可以为带有预设样式的图片设置 CSS 样式?
谢谢!
【问题讨论】:
严格来说,您所追求的 (CSS3) 选择器是 attribute contains 选择器:
img[style*="float:left;"] { margin: ; }
img[style*="float:right;"] { margin: ; }
与李斯特先生的回答不同,即使元素具有其他内联样式,它也会起作用。也就是说,我更喜欢 Lollero 的使用类并以这种方式应用你的利润的答案;它将与浏览器 100% 兼容!
【讨论】:
style="width:300px; float:right"。诚然,在这种情况下它没有区别,因为分号可以从选择器中删除,尽管如果您使用诸如 repeat 和 repeat-x 之类的属性可能会。当您遇到此类情况时,始终如一地编写 CSS 会很有帮助!
我不知道你为什么要那样做,所以我要建议这个:
HTML:
<img class="left" src="http://lorempixel.com/g/200/100/" alt="" />
<img class="right" src="http://lorempixel.com/g/200/100/" alt="" />
CSS:
.left {
float: left;
margin-left: 30px;
}
.right {
float: right;
margin-right: 30px;
}
【讨论】:
style="float:left" 用class="left" 这当然假设你的代码和你的例子一样简单在问题中. (当然,在替换东西时,您可能想要制作钩子,这样您就可以确定您正在替换您需要的东西......就像 style="float: left;" alt=" 替换为 class="left" alt=" )
是的,只要样式只有"float:left" 并且不包含其他属性或冒号周围的空格,您就可以在CSS 中写img[style='float:left']。
如果样式属性也可以包含其他内容,则最好使用 Javascript 来添加属性。 (检查.. .style.float)
编辑:正如 Pekka 所说,CSS 并不适用于所有浏览器。或许为图像添加一个类毕竟是更好的主意!
【讨论】:
style 属性必须完全匹配;此外,IE7 也不支持此功能(尽管谢天谢地,这已成为一个越来越少的问题。)
style 属性有问题吗?我听说它混淆了属性和属性,但我不确定到底是什么。