Reputation: 867
I'm rendering data into a div and I want to see if I can use CSS to create three lines between the four columns. I'm using a single div in order to get the data to display properly. While it would be nice if I was using separate columns (then I'd do border-right: 2px solid black
to each col), I like how the div expands as more items are added so I want to stick with a single div.
I've included a screencap that should better explain what I'm trying to achieve.
<div class="all-training">
<h2>All Training Courses</h2>
<div class="row">
<div class="col">
<ul class="all-courses-ul"></ul>
</div>
</div>
</div>
.all-courses-ul {
display: block;
}
.all-courses-ul li {
display: inline-block;
font-size: 15px;
list-style-type: none;
padding-bottom: 30px;
text-align: left;
width: 25%;
}
import testjson from './test.json';
function loadAllCourses() {
let jsonRes = testjson.d.results.map(function(val) {
return {
"Title": val.Title
}
});
let allTitles = jsonRes;
for (var i = 0; i < allTitles.length; i++) {
$(".all-courses-ul").append("<li>" + allTitles[i].Title + "</li>")
};
} // ------------------ loadAllCourses
loadAllCourses();
Upvotes: 0
Views: 67
Reputation: 19119
As a flexbox fanatic, I'm going to suggest using it for your layout:
h2 {
text-align: center;
}
.container {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.main-content,
.new-content {
display: flex;
}
.main-content{
flex-grow: 1; /* Take the most possible vertical space */
}
.container .col {
flex-basis: 25%;
}
.main-content .col:not(:last-child) {
border-right: 2px solid black;
}
html, body {
margin: 0;
}
<div class="container">
<h2>All Training Courses</h2>
<div class="main-content">
<div class="col">
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</div>
<div class="col">
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</div>
<div class="col">
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</div>
<div class="col">
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</div>
</div>
<div class="new-content">
<div class="col">
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</div>
<div class="col">
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</div>
<div class="col">
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</div>
<div class="col">
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</div>
</div>
</div>
Upvotes: 0
Reputation: 446
You can try the following maybe:
.all-courses-ul li {
border-right: 2px solid #000;
}
.all-courses-ul:last-child li {
border-right: 0;
}
Not sure if that's what you mean.
Upvotes: 1