我想實現這樣一個問題:How to set background image of outer div only to the right of inner div?爲什麼:: after元素的寬度不是按父母div計算的?
它呈現在這個codepen:http://codepen.io/anon/pen/WpNVmJ
我想要的是黃色圖像重演。它在該codepen中工作完美,但是當我嘗試在我的真實代碼中實現它時,它不起作用。
在現實圖像不固色,但條紋匹配的標題。基於漸變的解決方案不適用於此。
這是我真正的html:
<div class="off-canvas-wrap" data-offcanvas>
<div class="inner-wrap">
<header>
<div class="top-row">
<a href="/index.html" class="clickable-area"></a>
<div class="top-ad">
<script>
</script>
</div>
</div>
...
</header>
...
</div>
</div>
這是相關SCSS:
.top-row {
position: relative;
@media #{$large-up} {
height: 110px;
}
}
.top-row::after {
content: "";
display: block;
background: url("../images/above-menu-graphic-215-1px.png") repeat-x;
position: absolute;
top: 0px;
right:0px;
height: 110px;
width: calc(50% - #{$row-width/2});
}
獲得一個codepen工作是不可能的,或只是太多的工作,因爲我需要的基礎5個SCSS。
在鉻檢查表明::元素之後具有0
寬度當我改變寬度是公正calc(50%)
或只是50%
它顯示600px
。
div top-row
的寬度限制爲1200px,但標題是瀏覽器的大小。
寬度應該是header
50%,不top-row
。
更確切地說,它應該是calc(50% - $row-width/2)
和$ row-width/2正確計算爲600px(實際上rems),所以這不是問題。
爲什麼將this :: after元素的寬度設置爲如果它的父項爲<div class="top-row">
而不是<header>
?
如何使它工作?
該瀏覽器是否遵循正確的運算符優先順序?如果它不是'50% - $ row-width/2'會以'0'出現。 (如在:'(600像素 - 600px的)/ 2') – Ouroborus
在codepen,父是1000像素,並且你告訴僞元件是'50% - 500px'其是500 - 500 = 0 – pol
@Ouroborus - 鉻顯示編譯結果爲'calc(50% - 37.5rem)' –