如何覆盖此声明?
div.someClass {position:absolute; left:10px; top:20px}
我想要这个
div.myClass div.someClass {position:absolute; RIGHT:10px; top:20px; left:auto;}
你可以说,如果我设置 left:auto; 它应该可以工作,但它在IE6中不起作用, 我没有检查IE7,IE8中发生了什么。
如何仅使用CSS更改位置?
答案 0 :(得分:5)
这是CSS的问题之一:一旦设定了某种类型的规则,你如何“解开”那个铃?
假设你的div不在一个没有设置左值的容器,你可以试试这个:
div#myId div.someClass {
left: inherit;
right: 10px;
/* etc. */
}
请注意,您可以通过不首先声明div.someClass来省去一些麻烦。选择器中的额外元素只是不必要的重量。如果您的选择器是.someClass,您可以仅通过添加div.someClass来覆盖它。
答案 1 :(得分:3)
你的意思是你希望“myID”div为而不是遵守该规则,即使它有类“someClass”?然后你只需将放在之后的“.someClass”规则中:
div#myId { right: 10px; left: auto !important; }
(“!important”可能没有必要;尝试使用和不使用它,如果没有它就可以使用,然后将其关闭。)
如果您的意思是希望所有<div>
元素与“someClass”类在 中出现<{1}}且“id”为“myId”,那么您的选择器就可以了但请尝试“!important”后缀。
以下示例显示将“left”设置为auto肯定有效:http://gutfullofbeer.net/leftright.html
答案 2 :(得分:0)
你可以覆盖到任何东西(至少用javascript):
divObject.style.left = "";