2017-04-24 81 views
0

我有一個內容的小孩div。 div有內部填充和一些邊距。現在我想讓它具有比實際寬度更多的邊框。我怎樣才能做到這一點?我的代碼:如何放大div的邊框而不是實際的寬度?

<div class="parent"> 
    <div class="child"> 
    <p>Content</p> 
    </div> 
</div> 

.parent{ 
    border-top: 2px solid red; 
} 

.child{ 
    margin-left: 10px; 
    padding: 10px 10px; 
    border-bottom: 2px solid #000; 
    width: 50%; 
} 

p{ 
    margin:0; 
} 

現狀: enter image description here

但我需要的輸出: enter image description here

需要注意的是,我不能改變的margin和padding。可能嗎?提前致謝。

+3

請問,爲什麼你不能改變的margin和padding?你能不能覆蓋他們? –

+0

您的「需要」輸出具有0左邊距(*文字也左移*)。爲什麼你不能改變它? –

+0

我無法更改邊距,因爲它會打亂它下面的整個佈局。這種設計是以這種方式嵌套的,它不能改變。如果我避免邊緣變化,那麼我可以避免大量的CSS變化。而已。 – Gamer

回答

1

更改margin-left物業解決問題:

.parent{ 
 
    border-top: 2px solid red; 
 
} 
 

 
.child{ 
 
    margin-left: 0; 
 
    padding: 10px 10px; 
 
    border-bottom: 2px solid #000; 
 
    width: 50%; 
 
} 
 

 
p{ 
 
    margin:0; 
 
}
<div class="parent"> 
 
    <div class="child"> 
 
    <p>Content</p> 
 
    </div> 
 
</div>

如果你不想改變margin和padding,您可以使用這樣after僞元素:

.parent{ 
 
    border-top: 2px solid red; 
 
} 
 

 
.child{ 
 
    position: relative; 
 
    margin-left: 10px; 
 
    padding: 10px 10px; 
 
    width: 50%; 
 
} 
 

 
.child::after{ 
 
    content:''; 
 
    position: absolute; 
 
    width: 100%; 
 
    height: 2px; 
 
    background: #000; 
 
    bottom: -2px; 
 
    left: -10px; 
 
} 
 

 
p{ 
 
    margin:0; 
 
}
<div class="parent"> 
 
    <div class="child"> 
 
    <p>Content</p> 
 
    </div> 
 
</div>

0

,如果你不能改變marginpadding使用僞元素::after

.parent { 
 
    border-top: 2px solid red; 
 
} 
 

 
.child { 
 
    margin-left: 10px; 
 
    padding: 10px; 
 
    width: 50%; 
 
    position:relative 
 
} 
 

 
.child::after { 
 
    content: ""; 
 
    left: -10px; 
 
    height:2px; 
 
    width:100%; 
 
    background: #000; 
 
    position: absolute; 
 
    bottom:0 
 
} 
 

 
p { 
 
    margin: 0; 
 
}
<div class="parent"> 
 
    <div class="child"> 
 
    <p>Content</p> 
 
    </div> 
 
</div>

0

您遇到這個問題是當你面對understand the box modelborder適用於padding而不適用於margin。一旦你理解了,應該很容易理解。

0

試試這個CSS:

.parent{ 
    border-top: 2px solid red; 
} 

.child{ 
     margin-left: 10px; 
    padding: 10px 10px; 
    width: 50%; 
    position: relative; 
} 
.child:after { 
    content: ""; 
    width: 100%; 
    border-bottom: 2px solid #000; 
    position: absolute; 
    bottom: 0; 
    left: -10px; 
} 
p{ 
    margin:0; 
} 
相關問題