Skip to content

display

garevna edited this page Jul 6, 2019 · 10 revisions

Вам еще не надоели дефолтные установки браузера,

когда элементы ведут себя заранее предписанным образом ?


ico25 Свойство display

Вот где начинается самое интересное wink-20

С помощью этого свойства можно не только изменить дефолтные настройки отображения элемента,

например, сделать заголовок h1 строчным элементом

cap-25 inline

css
.inline {
    display: inline;
}
html
<div>
   Hello, <h1 class="inline">World</h1>
</div>

но и заставить элементы вести себя совершенно несвойственным для них образом,

например, заставить div вести себя как таблица или ячейка таблицы

cap-25 table

css
:root {
    --body-paddings: 10vh 10vw;
}
body {
    margin: 0;
    padding: var(--body-paddings);
    font-family: monospace, Arial;
    font-size:20px;
}

.table {
    display: table;
}
.table-row {
    display: table-row;
}
.table-cell {
    display: table-cell;
    text-align: center;
    vertical-align: middle;
    width: 300px;
    height: 80px;
    min-width: max-content;
    border: solid 1px gray;
}

@media screen and ( max-width: 400px ) {
    :root {
        --body-paddings: 1vh 1vw;
    }
}
html
<section class="table">
    <div class="table-row">
        <div class="table-cell">1</div>
        <div class="table-cell">2</div>
        <div class="table-cell">3</div>
    </div>
    <div class="table-row">
        <div class="table-cell">4</div>
        <div class="table-cell">5</div>
        <div class="table-cell">6</div>
    </div>
</section>


Есть еще одно интересное значение свойства display

cap-25 contents

CSS
:root {
    --body-paddings: 5vh 5vw;
}
body {
    margin: 0;
    padding: var(--body-paddings);
    font-family: monospace;
    font-size:18px;
}

.inline {
    display: inline;
}

.contents {
    color: #907;
    display: contents;
}

.table {
    display: table;
}
.table-row {
    display: table-row;
    color: #079;
}
.table-cell {
    display: table-cell;
    padding: 10px 20px;
    text-align: justify;
    vertical-align: middle;
    width: 33vw;
    border: inset 1px;
}

@media screen and ( max-width: 600px ) {
    :root {
        --body-paddings: 1vh 1vw;
    }
    .table-row {
        display: contents;
    }
    .table-cell {
        display: block;
        min-width: 85vw;
        border: 0;
    }
}
html
<section class="table">
    <div class="table-row">
        <div class="table-cell">
            CSS-attribute <h1 class="contents">display</h1>
        </div>
        <div class="table-cell">значение</div>
        <div class="table-cell">
            <h3 class="contents">contents</h3>
        </div>
    </div>
    <div class="table-row">
        <div class="table-cell">
            Сам элемент не создает никаких блоков, но его потомки и 
            псевдоэлементы могут создавать блоки как обычно
        </div>
        <div class="table-cell">
            Элемент следует рассматривать так, как будто в дереве документа 
            его подменили его потомками и псевдоэлементами
        </div>
        <div class="table-cell">
            потомки элемента с <h4 class="contents">display:contents</h4> 
            превращаются в самостоятельные элементы
        </div>
    </div>
</section>


display Описание
inline строчный
block блочный
inline-block блочно-строчный
table таблица
none элемент не отображается, его место освобождается
... ...

© Irina H.Fylyppova 2019



Занятие 1


Занятие 2


Занятие 3


Занятие 4


Занятие 5


Занятие 6


Занятие 7


Занятие 8


Дополнительно

Clone this wiki locally