使用仅带边距的部分垂直线分隔div

时间:2017-06-30 15:59:34

标签: html css

是否有可能只为包含文本的三个div设置边距来实现此设计?请注意,这些线条没有div那么高

enter image description here

https://codepen.io/anon/pen/zzRXLM



html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}

body {
  font-family: Roboto, Helvetica, Arial, Sans-Serif;
}

.container {
  display: flex;
  width:600px;
  margin-top:20px;
}

.child{  
  flex: 1;
  text-align: center;
  padding:0px 15px;
  border-right: 1.2px solid #ccc;
}

<div class="container">
  <div class="child">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam. </div>
  <div class="child">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam. </div>
    <div class="child">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam. </div>
</div>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:6)

我建议使用:在

之后
.child{  
  flex: 1;
  text-align: center;
  padding:0px 15px;
  position:relative; /* add this */
}
.child:after {
    content: ' ';
    position: absolute;
    border-right: 1.2px solid #ccc;

    /* use one of these blocks */
    height: 80%;
    top: 10%;
    /* or 
    top:20px;
    bottom:20px;
    */
    right: 0;
}

/* use this rule if you dont want line for last div */
.child:last-child:after{
  display:none
}

https://codepen.io/FaridNaderi/pen/qjxGZd

答案 1 :(得分:2)

您可以使用::after之类的伪元素并将其绝对定位在.child内,确保将.child设置为相对定位,以便伪元素保留在.child内。然后调整您希望边框开始的顶部或底部的距离。我使用px,但像%这样的相对单位也可以使用。

&#13;
&#13;
body {
  font-family: Roboto, Helvetica, Arial, Sans-Serif;
}

.container {
  display: flex;
  width: 600px;
  margin-top: 20px;
}

.child{  
  flex: 1;
  text-align: center;
  padding: 0px 15px;
  position: relative;
}

.child::after {
  content: '';
  position: absolute;
  top: 15px;
  right: 0;
  bottom: 15px;
  border: 1px solid indianred;
}
&#13;
<div class="container">

  <div class="child">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.
  </div>
  <div class="child">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.
  </div>
  <div class="child">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.
  </div>

</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

考虑使用一个小的png图像并使用它来分隔它们。然后线可以是你想要的任何长度。然后使用新的CSS3显示:网格功能来创建三列。

display: grid;
grid-template-columns: 75px 75px 75px;
grid-template-rows: 50px;

请参阅此处:https://gridbyexample.com/了解如何使用display:grid。