Свойство white-space css создает проблемы с flex
У меня проблемы с white-space:nowrap
когда есть гибкий контейнер.
Есть изгиб container
с flex-direction:row;
в котором есть два div sidebar
с определенной шириной, установленной с помощью flex:0 0 70px;
и main-content
,
в main-content
с flex-direction:column
два основных деления, header
и content
,
Сейчас в content
, есть три blade
который имеет flex-grow:1
,
каждый blade
имеет long-content
что установило white-space:nowrap
, Я хочу, чтобы все три лезвия были видны на экране, то есть автоматически настраивались в пространстве main-content
, Но как я установил overflow-x:hidden;
на container
так что горизонтальной прокрутки не будет, потому что правый экран обрезается, контент не виден.
Я хочу, чтобы это настроить на экране с равным пространством каждого лезвия.
Вот код:
function expand() {
var sidebar = document.querySelector(".sidebar");
sidebar.classList.add("sidebar--expanded");
}
button {
max-width: 60px;
max-height: 30px;
}
.container {
display: flex;
overflow-x: hidden;
}
.sidebar {
background: red;
height: 100vh;
display: flex;
flex: 0 0 70px;
}
.sidebar--expanded {
flex: 0 0 100px;
}
.main-content {
display: flex;
flex-direction: column;
flex-grow: 1;
}
.header {
background: blue;
flex-grow: 1;
display: flex;
color: white;
justify-content: flex-end;
flex: 0 0 30px;
}
.content {
display: flex;
color: white;
background: teal;
flex-grow: 1;
width: 100%;
}
.long-content {
overflow-x: auto;
white-space: nowrap;
}
.blade {
border: 1px solid red;
padding: 5px;
flex-grow: 1;
}
<div class="container">
<div class="sidebar">
<button onclick="expand()">Sidebar</button>
</div>
<div class="main-content">
<div class="header">
header
</div>
<div class="content">
<div class="blade">
<div class="long-content">
Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add
title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle
public.Add title to make the fiddle public.
</div>
</div>
<div class="blade">
<div class="long-content">
Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add
title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle
public.Add title to make the fiddle public.
</div>
</div>
<div class="blade">
<div class="long-content">
Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add
title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle public.Add title to make the fiddle
public.Add title to make the fiddle public.
</div>
</div>
</div>
</div>
</div>
Немного сложно объяснить всю ситуацию, так что вот JSFiddle.
Я перепробовал все комбинации CSS, применяя различные правила CSS, но не смог этого добиться? Пожалуйста помоги.
Спасибо!!
Дополнительная информация На самом деле, второй flex-элемент, который main-content
не рассматривает существование своего родного брата, то есть sidebar
, поэтому он занимает всю ширину экрана, считая его единственным элементом.
1 ответ
Если вы хотите, чтобы он корректировался на экране с равным пространством каждого лезвия, то почему вы ставите пробел: nowrap.
Удалить white-space: nowrap
из длинного контента, и он будет автоматически корректироваться в вашем контейнере, занимая равное пространство.