I have an unordered list in which I am displaying some objects. These objects have multiple attributes which I want to display. I made this in Python Flask and jinja.
<li >
<a href="link">{{candidate.name}}</a>
<label id="min">Min. value:<input type="number" id="min" name="min-val" min="1" max="100"></label>
<label id="max">Max. value:<input type="number" id="max" name="max-val" min="1" max="100"></label>
<p id="average_rank">{{'%0.2f' % average_rank|float}}</p>
<p id="points">{{points}}</p>
</li>
I thought I could use the following css to let all the columns start at the same position.
#points {
position: relative;
left: 85%;
}
#average_rank {
position: relative;
left: 75%;
}
#min {
position: relative;
left: 5%;
}
#max {
position: relative;
left: 15%;
}
label {
vertical-align: top;
}
a {
position: relative;
left: 1%;
text-align: left;
float: left;
}
Where I just change the relative position with a certain percentage. This doesn't seem to work and it looks like the length of the items influences the placements.
How can I put the attributes in the list elements in columns?
I would want it to look like this:
A link1 Attribute1 Rank
Longer_link Attribute2 Rank2
Link3 Attribute345 Rank3
CodePudding user response:
To get things started, replace all of your CSS with this:
.list-group-item {
display: grid;
grid-template-columns: repeat(5, auto);
align-items: center;
}
grid-template-columns defines the width of the 5 columns, so to start with you'll find your columns don't line up across different items as here they're all set to auto. You can get consistency across your items by using consistently defined values (percentages, pixels, vw, etc.)
