[英]Adding borders inside div
我正在處理一個表單編輯器頁面,用戶可以在其中添加自定義元素。 有了這個,我正在處理一個可以在其中包含子列 div 的 div。 現在,用戶可以設置父 div 的邊框。 設置父 div 的邊框時,是否可以在每個子列 div 之間設置垂直邊框?
設置邊框時的當前行為:
當用戶設置邊框時我們想要什么:
我試過的:
box-shadow: 5px 0px 0px 0px black;
在除最后一個之外的列 div 上,但是當邊框設置為點/虛線時無法應用outline: 1px solid black
每列 div 為outline: 1px solid black
,但由於列 div 填充,輪廓將超出父 div需要考慮:
HTML文件
<div class="main">
<div class="content">
<div class="column">
<div class="inner"></div>
</div>
<div class="column">
<div class="inner"></div>
</div>
<div class="column">
<div class="inner"></div>
</div>
</div>
</div>
CSS
.main {
padding-top: 10px;
padding-bottom: 10px;
margin: 0;
width: 100%;
border: 1px solid black;
}
.main:after {
clear: both;
display: table;
content: " ";
}
.content {
margin-left: -15px;
margin-right: -15px;
}
.column {
float: left;
padding-right: 15px;
padding-left: 15px;
width: 33.33%;
min-height: 1px;
box-sizing: border-box;
background-color: red;
background-clip: content-box;
}
.inner {
min-height: 50px;
}
非常感謝任何幫助或建議!
為了實現您的目標,您只需將border
、 padding-top
和padding-bottom
樣式從.main
到.column
。 為了保持列高相同,無論內容如何,您都可以在容器上使用display: flex
,然后在每個.column
上使用height: 100%
。
另請注意,您可以使用速記margin
和padding
規則一次設置所有 4 個維度。
.main { margin: 0; width: 100%; } .content { margin: 0 -15px; display: flex; } .column { float: left; padding: 10px 15px; width: 33.33%; min-height: 1px; box-sizing: border-box; background-color: red; background-clip: content-box; border: 1px solid black; } .inner { min-height: 50px; }
<div class="main"> <div class="content"> <div class="column"> Lorem ipsum dolor sit amet consectetur adipiscing elit. Lorem ipsum dolor sit amet consectetur adipiscing elit. Lorem ipsum dolor sit amet consectetur adipiscing elit. Lorem ipsum dolor sit amet consectetur adipiscing elit. <div class="inner"></div> </div> <div class="column"> <div class="inner"></div> </div> <div class="column"> <div class="inner"></div> </div> </div> </div>
您能否將主 DIV 的背景顏色設置為純黑色,然后為具有白色背景的內部 DIV 設置 1px 的左邊距和右邊距? 這會造成黑色邊框的錯覺。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.