一、相同點
大多數情況下,兩者作用是一樣的。
① 父容器width/height: auto
,無論width/height:100%
或者width/height:inherit
表現都是auto。
② 父容器width/height: 100px
,無論width/height:100%
或者width/height:inherit
表現都是100px
高。
例如如下代碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style type="text/css"> .outer { width: 200px; height: 200px; border: 5px solid #cd0000; margin: 10px; } .height-100 { width: 100%; height: 200px; background-color: #beceeb; } .height-inherit { width: inherit; height: 200px; background-color: #beceeb; } </style> </head> <body> <div class="outer"> <div class="height-100"></div> </div> <div class="outer"> <div class="height-inherit"></div> </div> </body> </html>
效果如下所示:
二、不同點
當子元素為絕對定位時,父元素的position值為static時,由於子元素脫離了文檔流,寬度設置為100%即和body的寬度一致了。
如果設置width:inherit的時候,瀏覽器會將父盒子的寬度賦值給他。
如下代碼所示:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style type="text/css"> .outer { width: 200px; height: 200px; border: 5px solid #cd0000; margin: 10px; } .height-100 { position: absolute; width: 100%; height: 200px; background-color: #beceeb; } .height-inherit { position: absolute; width: inherit; height: 200px; background-color: #beceeb; } </style> </head> <body> <div class="outer"> <div class="height-100"></div> </div> <div class="outer"> <div class="height-inherit"></div> </div> </body> </html>
效果如下所示:
解決絕對定位脫離文檔流從而導致寬度為body寬度的問題,在父元素上加position:relative