Css 如何在不继承其父对象的情况下获取宽度?

Css 如何在不继承其父对象的情况下获取宽度?,css,Css,假设,这个html和css <div> <div>test</div> </div> div{width: 80%;} 测试 div{宽度:80%;} 测试div将获得80%的80%,即64%的宽度,因为它从其父div继承。显然,如果它像80em一样使用em设置,那么它也将继承并获得64%。但是没有使用em,而是使用rem,它可以在不继承其父对象的情况下完美地工作 那么,有没有像em到rem这样的百分比替代品?没有,没有替代品。根据您想

假设,这个html和css

<div>
  <div>test</div>
</div>

div{width: 80%;}

测试
div{宽度:80%;}
测试div将获得80%的80%,即64%的宽度,因为它从其父div继承。显然,如果它像80em一样使用em设置,那么它也将继承并获得64%。但是没有使用em,而是使用rem,它可以在不继承其父对象的情况下完美地工作


那么,有没有像em到rem这样的百分比替代品?

没有,没有替代品。根据您想要实现的目标,以下可能是您想要的:

div{width:80%;}
div > div{width:100%;}
你要找的(我猜)是vw(视口宽度)

使div占视口的80%(即浏览器窗口-或多或少)


根据您的情况可能不适合,但将div设置为
位置:fixed
就可以了。您是否被困在无法为他们提供类的情况下?如果您同时为他们提供类,但将宽度分配为80%,该怎么办?我只是想知道换个新的。对不起,我想我不明白。我从来没有在没有类的情况下设计过div的样式。我认为无论如何都没有必要引用窗口宽度而不是父元素。它的80%是它的父母。我只想知道保留80%。但你说没有。无论如何,谢谢。在使用这种方法时要小心,因为第三级div也会应用这个子类(因为它与模式匹配)<代码>第3级如果您不希望出现这种情况,那么可以从正文级开始,即`body>div>div{width:100%}
div { 
    width: 80vw;
}