#css #wordpress #width #media
#css #wordpress #ширина #Медиафайлы
Вопрос:
Я использую тему Backpack Traveler от Mikado, и меня не устраивает ширина моих статей при просмотре с мобильного устройства. У меня есть идея, но я хотел спросить мнение здесь, прежде чем я это сделаю, поскольку я новичок.
Это код, который в настоящее время использует тема (я просто добавлю 2 примера):
@media only screen and (max-width:768px) {
.mkdf-header-vertical .elementor-widget-wrap>.mkdf-row-grid-section.elementor-element,
.mkdf-header-vertical .mkdf-container-inner,
.mkdf-header-vertical .mkdf-grid,
.mkdf-header-vertical .mkdf-row-grid-section {
width: 600px
}
}
@media only screen and (max-width:680px) {
.mkdf-header-vertical .elementor-widget-wrap>.mkdf-row-grid-section.elementor-element,
.mkdf-header-vertical .mkdf-container-inner,
.mkdf-header-vertical .mkdf-grid,
.mkdf-header-vertical .mkdf-row-grid-section {
width: 420px
}
}
Как вы можете видеть, большинство пикселей не используются, когда размер телефона максимальный или близок к параметрам максимальной ширины. То, что я думаю о том, чтобы сделать, это:
- Создайте больше строк кода @media query на каждые 20 пикселей (скажем, от 320 пикселей до 640 пикселей) Это 16 строк строк запроса @media с размером пикселя 320 340 360 и т.д.
- Установите ширину в calc (100% — 20 пикселей)
Это точно не лучший способ сделать это, но у меня нет других идей, поэтому я решил спросить здесь.
Редактировать: я связался с разработчиками темы, и они сказали мне использовать этот код вместо
@media only screen and (max-width: 480px){
.single-post .elementor-widget-wrap>.mkdf-row-grid-section.elementor-element,
.mkdf-container-inner, .mkdf-grid, .mkdf-row-grid-section {
width: X;
}
}
Я предполагаю, что .single-post будет применяться только к самим статьям, поэтому ничего не сломается при изменении размера ширины. Я установил ширину на 95% для максимальной ширины 480 пикселей. Я сделаю то же самое для 680px, 768px и 1024px.
Правка 2: я опробовал новые изменения на Samsung Galaxy S9 , и все выглядит великолепно. Некоторые элементы больше не центрируются на домашней странице, но я разберусь с этим.
Комментарии:
1. Нет, не создавайте медиа-запросы на каждые 20 пикселей — это излишество, и управлять им будет невероятно сложно. Вы можете просто указать параметры пользователя — даже без calc, например,
width:94%
дает 3%-ный запас, а поля, пропорциональные размеру экрана, могут быть более эстетичными. Однако, пожалуйста, обратите внимание, что любое изменение ширины темы может нарушить макет, если другие элементы полагаются на определенную ширину .2. можете ли вы сначала проверить поддержку темы? поскольку кажется, что это хорошо управляемая тема. Я считаю, что это легко исправить. возможно, у них есть настройка темы для более широких представлений, таких как шаблоны просмотра во всю ширину.
3. @Rosh_LK Я проверил это, и нет шаблона полной ширины, который поставляется по умолчанию с темой. У меня есть «Elementor Full Width», но у меня есть только 1 страница elementor.
4. @FluffyKitten % все еще будет работать в медиа-запросе? Например, я установил максимальную ширину в 480 пикселей и установил ширину в 94%. Если мой веб-сайт посещает устройство с разрешением 380 пикселей, ширина составляет 94% от 380 пикселей или 94% от 480 пикселей? Спасибо за вашу помощь!
5. @FluffyKitten Я также связался с разработчиками темы, но поскольку срок моей поддержки истек, я не получил полного ответа, но он все еще был информативным. Разница в их коде заключается в том, что в нем нет класса mkdf-header-vertical. Код начинается с класса «.single-post», поэтому я думаю, что это правильный способ сделать то, чего я хочу достичь.
Ответ №1:
Вы могли бы использовать единицы vw
(ширина области просмотра) и уменьшить (или, возможно, даже устранить) необходимость в этих @media
точках останова, например, вот так:
.mkdf-header-vertical .elementor-widget-wrap>.mkdf-row-grid-section.elementor-element,
.mkdf-header-vertical .mkdf-container-inner,
.mkdf-header-vertical .mkdf-grid,
.mkdf-header-vertical .mkdf-row-grid-section {
width: 95vw;
}
vw
Единица измерения представляет собой 1% ширины области просмотра (размер окна браузера), поэтому 95vw
будет составлять 95% ширины окна браузера (или ширины экрана для полноэкранных браузеров, таких как телефоны и планшеты), независимо от размера устройства.
РЕДАКТИРОВАТЬ: Согласно комментарию FluffyKitten, было бы лучше использовать старый добрый, %
чем vw
. Если элементы находятся в одном контейнере или разных контейнерах, но одинаковой ширины, то было бы лучше что-то вроде следующего:
.mkdf-header-vertical .elementor-widget-wrap>.mkdf-row-grid-section.elementor-element,
.mkdf-header-vertical .mkdf-container-inner,
.mkdf-header-vertical .mkdf-grid,
.mkdf-header-vertical .mkdf-row-grid-section {
width: 95%;
}
Кстати. %
это способ более обратной совместимости, чем точки останова vw
или @media
.
В этом случае все находится под .mkdf-header-vertical
контролем, поэтому, если существует только один контейнер этого класса или контейнеры этого класса имеют одинаковую ширину, и если .elementor-widget-wrap
это 100% от родительского .mkdf-header-vertical
, то эти элементы действительно будут иметь одинаковую ширину.
Если вам нужно постоянное количество пикселей между краем контейнера и этими элементами, то, предполагая, что условие в предыдущем абзаце выполняется, вы можете просто сделать что-то вроде
.mkdf-header-vertical {
padding-left: 20px;
padding-right: 20px;
}
и установите вышеуказанные значения ширины на 100%
.
Комментарии:
1. Мы понятия не имеем, что представляют собой контейнеры для этих элементов, поэтому установка ширины на основе ширины браузера, а не ширины контейнера, может иметь непреднамеренные последствия. Простое использование процентов учитывает ширину контейнера, а не только окна.
2. @FluffyKitten Похоже, что OP хотел, чтобы эти элементы были почти такими же широкими, как ширина браузера, поэтому я ответил соответствующим образом. Конечно, если элементы находятся в одном контейнере (или в разных контейнерах, но одинаковой ширины), то использование
%
было бы лучшей альтернативой, дающей тот же желаемый эффект. Я соответствующим образом отредактировал свой ответ.3. Я пошел дальше и изменил его на 95vw из исходного кода, но по какой-то причине я не вижу код в реальном времени. Я изменю его на 95%, сохранив точки останова @media, потому что я чувствую, что разработчики темы добавили их, чтобы ничего не ломалось.