我有如下的CSS代码:
div#sbar {position:absolute;top: 10px;bottom: 10px;left:10px; right: 10px;}
有很多属性指定了左、右、上和下等方向。是否有一种方法可以优化/简化CSS呢?我希望像border一样有一个快捷方式。
谢谢
我有如下的CSS代码:
div#sbar {position:absolute;top: 10px;bottom: 10px;left:10px; right: 10px;}
有很多属性指定了左、右、上和下等方向。是否有一种方法可以优化/简化CSS呢?我希望像border一样有一个快捷方式。
谢谢
没有关于 top、bottom、left、right 的速记。
top:10px;bottom:10px
这样写有什么作用吗? - Wesley Murch您无法缩短这个:
div#sbar {position:absolute;top: 10px;bottom: 10px;left:10px; right: 10px;}
div#sbar {position:absolute;top: 10px;bottom: 10px;left:10px; right: 10px;}
div#gbar {position:absolute;top: 10px;bottom: 10px;left:500px; right: 30px;}
div#nbar {position:absolute;top: 10px;bottom: 10px;left:50px; right: 200px;}
div#sbar, div#gbar, div#nbar { position:absolute; top: 10px; bottom: 10px }
div#sbar { left:10px; right: 10px }
div#gbar { left:500px; right: 30px }
div#nbar { left:50px; right: 200px }
这可能很有用。
此外,在div#sbar
中没有必要使用div
:按定义,id
是唯一的,因此无需使用标记名称限定id
。实际上,使用它会(极其微小地)减慢浏览器速度。
因此,以下代码更好(而且更简洁):
#sbar, #gbar, #nbar { position:absolute; top: 10px; bottom: 10px }
#sbar { left:10px; right: 10px }
#gbar { left:500px; right: 30px }
#nbar { left:50px; right: 200px }
这里有一个实际例子,与我刚才所建议的非常相似:
在那个问题中,这种方法确实效果更好,因为所有的div
都包含在一个共同的父元素中,所以没有必要将元素列出两次。
div#sbar {position: absolute 10px 10px 10px 10px;}`
据我所知,这并不存在。不过如果有的话,那就太好了。
#sbar
之前不需要div
-- 附加说明 --10px
,然后再向上移动10px
将等于没有移动。没有简写的方法可以表示 top
, bottom
, left
, 或 right
。
至于你的 CSS 选择器本身,它重复了两次。我的意思是 CSS 是从右到左解析的。
如果你有这样一个例子: div table tr td#myContent{}
这里发生了什么:
div table tr td
#myContent{}
找到 #myContent!
div table tr
td #myContent {}
我们已经找到 #myContent 了,但没关系!
div table
tr td #myContent {}
我告诉过你,我们已经找到 #myContent了...!
div
table tr td #myContent {}
就像我之前说的三次一样,我们已经找到 #myContent 了!!!
div table tr td #myContent {}
...