Hier ist mein HTML-Markup:Warum "flex-direction: row" nicht alle Elemente in einer einzelnen Zeile anordnet (+ ein Platzierungsproblem)?
<div class="expander-container" data-css="expander-container">
<div class="top-comment-container" data-css="top-comment-container">
<a class="expand-anchor" data-css="expand-anchor" >
<div><span class="alternate-color icon-next arrow"
data-css="alternate-color icon-next _2Cx2VFM04V1vDEfkDEJ3Cw" ></span></div>
<div class="activity-item activity-container"
data-css="activity-item" >
<div class="activity-text" data-css="activity-text" ><span >Content</span></div>
<div class="activity-vote-count" data-css="activity-vote-count" ><span >0</span><span> vote</span></div>
<div class="activity-reply-count"
data-css="activity-reply-count" ><span>1</span><span> reply</span></div>
<time datetime="Wed May 25 2016 15:57:21">
<span >May 25, 2016, 3:57 PM</span></time></div>
</a>
</div>
</div>
Hier ist meine CSS ist (in weniger)
.expander-container {
display: flex;
flex-direction: column;
}
.expand-anchor {
background: none;
border: none;
padding: 0;
cursor: pointer;
align-self: center;
&:hover {
text-decoration: none;
}
}
.icon-next:before {
content: ">";
}
.arrow:before {
display: inline-block;
transform: rotate(0deg);
transition: transform .25s ease-out;
.expand& {
transform: rotate(90deg);
}
}
.top-comment-container {
display: flex;
flex-direction: row;
align-items: flex-start;
border: 1px solid green;
flex-wrap: nowrap;
}
.reply-container {
display: flex;
}
// activity-item
.activity-item {
margin-left: 5px;
}
.reply-item {
margin-left: 10px;
border: 1px solid blue;
}
.activity-container {
display: flex;
}
.activity-text {
align-self: center;
flex-grow: 1;
flex: 5;
// flex-basis: 100;
}
.activity-vote-count {
align-self: center;
// width: 10%;
flex: 1;
}
.activity-reply-count {
align-self: flex-end;
// flex-basis: 1;
// width: 10%;
flex: 1;
}
.activity-container {
align-self: center;
}
Was will ich erreichen ist, alle diese Elemente auf einer einzelnen Achse ausgerichtet haben.
z.B.
> Content 0 vote 1 reply May 25, 2016, 3:57 PM
jedoch, wie Sie in meinem codepen Coode (http://codepen.io/kongakong/pen/YWKvgG?editors=1100) sehen kann, der Pfeil nimmt irgendwie eine Zeile. Der Rest des Inhalts wird in die nächste Zeile gequetscht.
Ich habe ein paar Dinge ausprobiert, z.B. Fügen Sie flex-basis
, flex-wrap: nowrap
usw. hinzu, aber sie haben keine Wirkung.
Eine zweite Frage ist, wie kann ich eine feinere Kontrolle über die Platzierung haben? Ich möchte, dass der Text "Inhalt" den größten Teil des Platzes in einer Zeile einnimmt. Informationen wie Abstimmung und Zeit sollten auf die rechte Seite verschoben werden. Ich habe den 'flex-grow: 1' auf den Text angewendet, aber er wächst nicht und füllt den Raum.