Я думаю, мне нужно преобразовать этот макет или вид, сделанный с таблицей в html, в Divs. Структура таблицы представляет собой два столбца с изображением на одной стороне и текстом, связанным с изображением, на другой. При достаточно маленьком сжатии (например, на мобильном устройстве) мне нужно, чтобы столбцы переходили от двух к сложенным или к одному столбцу. Я не знаю, нужно ли мне использовать точки останова и никогда их не было... или есть какое-то другое более гибкое решение для воспроизведения структуры, которую я включил ниже. Это нужно сделать в текстовом редакторе темы Wordpress Divi.
Прямо сейчас я пытаюсь сделать эту работу, используя Materialize (https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css) в этой кодовой ручке. Я понятия не имею, будет ли materialize работать даже в WordPress...
Кодепен https://codepen.io/robmatthews/pen/qebwor
<table height = "557" style = "width: 800px; border-color: #ffffff; background-color: #ffffff; height: 702px; margin-left: auto; margin-right: auto;" border = "#fff">
<tbody>
<tr>
<td style = "width: 373px; border-color: #ffffff; background-color: #ffffff;">
<h2><img src = "http://projectorbach.com/wp-content/uploads/2019/07/clipboard.png" width = "174" height = "171" alt = "" class = "wp-image-35671 alignnone size-full" style = "display: block; margin-left: auto; margin-right: auto;" /></h2>
<h2 style = "text-align: center;"><span>Create Team Rosters</span><span></span></h2>
<div class = "col"></div>
</td>
<td style = "width: 373px; border-color: #ffffff; background-color: #ffffff;">
<div class = "col">
<div class = "col">Easily input new clients and team rosters.</div>
<div class = "col"></div>
</div>
</td>
</tr>
<tr>
<td style = "width: 373px;"><span>Easy to create and easy to use. Our player evals are done through a grid. We start with templates based on age group and sport. Then, you can customize the skills and stats you want to track.</span></td>
<td style = "width: 373px;">
<h2 style = "text-align: center;"><span class = "blue"><img src = "http://projectorbach.com/wp-content/uploads/2019/07/eval.png" width = "181" height = "167" alt = "" class = "wp-image-35673 alignnone size-full" /><br /> </span><span class = "blue">Evaluate Your Players</span><span></span></h2>
</td>
</tr>
<tr>
<td style = "width: 373px;">
<h2 style = "text-align: center;"><img src = "http://projectorbach.com/wp-content/uploads/2019/07/multisport_player.png" width = "174" height = "171" alt = "" class = "wp-image-35689 alignnone size-full" /></h2>
<h2 style = "text-align: center;">More Features</h2>
</td>
<td style = "width: 426px;">
<div>
<div class = "row">
<div class = "col">
<p><span class = "s1" style = "font-size: 15px;"><span class = "s3"></span></span>
</p>
<ul class = "ul1">
<li class = "li1"><span class = "s1">Eases communication with parents decreasing ambiguity</span></li>
<li class = "li1"><span class = "s2"></span><span class = "s1">Customizable evaluation criteria</span></li>
<li class = "li1"><span class = "s2"><span class = "Apple-tab-span"> </span></span><span class = "s1">Create practice plans and share videos</span></li>
<li class = "li2"><span class = "s3">Share data and progression with your club</span></li>
</ul>
</div>
</div>
</div>
<div id = "lipsum"></div>
</td>
</tr>
</tbody>
</table>
<p> </p>
<p style = "text-align: center;">






Чтобы перейти на нетабличный макет, вам просто нужно структурировать свои div как таблицу. Я прикладные классы, которые делают это ясно.
Див с .my-wrapper занимает место самой таблицы. Элементы div с .my-row служат строками таблицы, а те, что с .my-cell, являются столбцами/ячейками «таблицы».
Используя flexbox, мы получаем гибкий макет, которым можно очень легко управлять и который позволяет вам изменять макет там, где вы хотите. Просто применяя:
display: flex;
... в div, он становится flex-контейнером, а непосредственные дочерние элементы (в данном случае div с .my-cell) становятся flex-элементами. Я добавил несколько комментариев в приведенный ниже код, чтобы указать, что делает каждая строка. Добавлены границы, чтобы сделать макет более четким. Запустите фрагмент и просмотрите его в полностраничном режиме, чтобы вы могли настроить ширину экрана и увидеть изменения.
Повторите расположение строк, чтобы построить остальную часть таблицы.
Отличный ресурс для получения дополнительной информации о flexbox: https://css-tricks.com/snippets/css/a-guide-to-flexbox/.
Подробнее о медиа-запросах: https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Использование_медиа_запросов.
* {
box-sizing: border-box;
}
.my-wrapper {
max-width: 800px; /* use max-width instead of width to get automatic responsive flexibility */
margin: 0 auto; /* centers the container on the page */
border: 1px solid blue;
}
.my-row {
display: flex; /* direction row by default, the cells will be side by side to start */
}
.my-cell {
width: 50%;
padding: 20px;
display: flex; /* yep, the cells can get flexbox layout too */
flex-direction: column; /* each cell will have its content laid out vertically */
align-items: center; /* centers content horizontally */
justify-content: center; /* centers content vertically */
border: 1px solid red;
}
.my-cell img {
max-width: 100%; /* make the images responsive too */
height: auto;
}
@media (max-width: 500px) { /* change the max-width in the media query to whatever width you want, you can use min-width too if you prefer */
.my-row {
flex-direction: column; /* force the layout to stack the cells vertically */
}
.my-cell {
width: 100%; /* cells should be full width at this point */
}
}<div class = "my-wrapper">
<div class = "my-row">
<div class = "my-cell">
<img src = "https://picsum.photos/200/300" />
</div>
<div class = "my-cell">
<h2>Some title text</h2>
<p>Some paragraph text...</p>
<ul>
<li>whatever</li>
<li>you</li>
<li>want</li>
</ul>
</div>
</div>
</div>После того, как ячейки сложены, будет ли какой-либо способ иметь ячейку 1 стека первой строки над ячейкой 2, затем ячейку 4 стека второй строки над ячейкой 3 и, наконец, иметь ячейку 5 стека последней строки над ячейкой 6? У меня всегда одна картинка и одно описание в ряду, но они чередуются. Этот codepen - это то, с чем я работаю. КодПен Я думаю, что могу использовать два разных имени класса "my-cell"... но я все еще не уверен, как я могу диктовать порядок их расположения или порядок в медиа-запросе. Или есть простой способ добавить иерархию заказов?
да. flex-direction:column-reverse Примените специальный класс к строкам, которые вы хотите расположить в обратном порядке, и в медиа-запросе примените это правило к этому классу в качестве переопределения для flex-direction:column, которое получат все остальные строки.
классно. Да, я понял это. Огромное спасибо чувак
Роб,
Добавление класса к вашему тегу таблицы (class=responsive_table для этого примера) и написание медиа-запроса приведет к тому, что столбцы будут располагаться один под другим.
@media screen and (max-width: 400px) {
table.responsive_table {
display: block;
}
table.responsive_table td {
width: 100%;
display: block;
}
}<table height = "557" style = "width: 800px; border-color: #ffffff; background-color: #ffffff; height: 702px; margin-left: auto; margin-right: auto;" border = "#fff" class = "responsive_table">
<tbody>
<tr>
<td style = "width: 373px; border-color: #ffffff; background-color: #ffffff;">
<h2><img src = "http://projectorbach.com/wp-content/uploads/2019/07/clipboard.png" width = "174" height = "171" alt = "" class = "wp-image-35671 alignnone size-full" style = "display: block; margin-left: auto; margin-right: auto;" /></h2>
<h2 style = "text-align: center;"><span>Create Team Rosters</span><span></span></h2>
<div class = "col"></div>
</td>
<td style = "width: 373px; border-color: #ffffff; background-color: #ffffff;">
<div class = "col">
<div class = "col">Easily input new clients and team rosters.</div>
<div class = "col"></div>
</div>
</td>
</tr>
<tr>
<td style = "width: 373px;"><span>Easy to create and easy to use. Our player evals are done through a grid. We start with templates based on age group and sport. Then, you can customize the skills and stats you want to track.</span></td>
<td style = "width: 373px;">
<h2 style = "text-align: center;"><span class = "blue"><img src = "http://projectorbach.com/wp-content/uploads/2019/07/eval.png" width = "181" height = "167" alt = "" class = "wp-image-35673 alignnone size-full" /><br /> </span><span class = "blue">Evaluate Your Players</span><span></span></h2>
</td>
</tr>
<tr>
<td style = "width: 373px;">
<h2 style = "text-align: center;"><img src = "http://projectorbach.com/wp-content/uploads/2019/07/multisport_player.png" width = "174" height = "171" alt = "" class = "wp-image-35689 alignnone size-full" /></h2>
<h2 style = "text-align: center;">More Features</h2>
</td>
<td style = "width: 426px;">
<div>
<div class = "row">
<div class = "col">
<p><span class = "s1" style = "font-size: 15px;"><span class = "s3"></span></span>
</p>
<ul class = "ul1">
<li class = "li1"><span class = "s1">Eases communication with parents decreasing ambiguity</span></li>
<li class = "li1"><span class = "s2"></span><span class = "s1">Customizable evaluation criteria</span></li>
<li class = "li1"><span class = "s2"><span class = "Apple-tab-span"> </span></span><span class = "s1">Create practice plans and share videos</span></li>
<li class = "li2"><span class = "s3">Share data and progression with your club</span></li>
</ul>
</div>
</div>
</div>
<div id = "lipsum"></div>
</td>
</tr>
</tbody>
</table>
<p> </p>
<p style = "text-align: center;">Вы можете изменить точку останова в медиа-запросе, где указано Максимальная ширина.
Очень крутой ответ. Большое спасибо. Очень ценю потраченное время и тот факт, что теперь я узнаю, что на самом деле происходит! Ты да человек