css - Wordpress - 带有媒体查询的响应式宽度
问题描述
我正在使用来自 Mikado 的 Backpack Traveler 主题,我对从移动设备查看文章的宽度不满意。我有一个想法,但我想在我做之前在这里征求意见,因为我是新手。
这是主题当前使用的代码(我将仅添加 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
}
}
如您所见,当手机尺寸为最大或接近最大宽度参数时,大部分像素都没有使用。我想做的是:
- 每 20 个像素创建更多的@media 查询代码行(假设从 320px 到 640px)这是 16 行 @media 查询行,像素大小为 320,340,360 等。
- 将宽度设置为 calc(100% - 20px)
这肯定不是最好的方法,但我没有任何其他想法,所以我决定在这里问。
编辑:我已经联系了主题开发人员,他们告诉我改用这段代码
@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:我尝试了三星 Galaxy S9+ 的新变化,一切看起来都很棒。有些元素不再以主页为中心,但我会弄清楚的。
解决方案
您可以使用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
是其 parent 的 100% .mkdf-header-vertical
,那么这些元素确实具有一致的宽度。
如果您希望容器边缘和这些元素之间的像素数一致,那么假设上一段中的条件成立,您可以简单地执行类似的操作
.mkdf-header-vertical {
padding-left: 20px;
padding-right: 20px;
}
并将上述宽度设置为100%
.
推荐阅读
- c# - 无法调用带参数的 webmethod
- snowflake-cloud-data-platform - 注册性能:使用存储过程的数据转换
- javascript - 链表。对代码中的平等问题感到困惑
- jquery - 通过AJAX将序列化的数据传递给MVC中的控制器
- python - 如何修复混淆矩阵中的分类器?
- javascript - Html 选项卡处于活动状态
- google-cloud-platform - 文件上传,使用 Python(本地系统)到 Google Cloud Storage
- android - 如何将用户调试版本闪存到 Pixel 设备?
- angular - matDatepicker中的日期值与使用Angular 8中的Reactive Form的formControl不相等
- flutter - RFlutter_Alert - 如何验证和返回 TextFormField