删除小型设备(手机)上的边距空白

2023-11-29

我不希望小型设备的边缘有任何空白。当屏幕已经很小时,使用除屏幕全宽之外的任何内容都会适得其反。

所以我通过 WordPress 使用主题,但我找到了容器 div 并能够修改它,我想让它更窄。 我还声明了一个比容器(宽度为 65%)更宽的 div (child1wide),希望马线会消失。

问题在于小屏幕上文本的两侧有边距,即空白。 我怎样才能摆脱这个空白?我仍然希望在更大的屏幕上有利润。

你可以看看今天的样子:https://imgur.com/dcVIGBJ

未修改的 .container 具有可接受的边距,但我想让它适用于 .child1wide 并且也许可以学到一些新东西。

CSS(观察,.container 可能也在我的 WordPress 主题中定义,这只是我附加的“自定义 CSS”):

.child1wide {
  background-color: yellow;
  display: flex;
  margin-left: calc(-37.5vw + 50%);
  width: 75vw;
}

.container {
width: 65%  ;
padding: 0px 0px 0px 0px;
}

HTML(第二个“Lorem ipsum”文本位于 .child Wide-div 之外,这意味着它自动位于 WordPress 主题设置的 .container-div 中):

<div class="child1wide">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolore neque repellat ipsum natus magni soluta explicabo architecto, molestias laboriosam rerum. Tempore eos labore temporibus alias necessitatibus illum enim, est harum perspiciatis, sit, totam earum corrupti placeat architecto aut minus dignissimos mollitia asperiores sint ea.
</div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolore neque repellat ipsum natus magni soluta explicabo architecto, molestias laboriosam rerum. Tempore eos labore temporibus alias necessitatibus illum enim, est harum perspiciatis, sit, totam earum corrupti placeat architecto aut minus dignissimos mollitia asperiores sint ea.

我知道 @media only 屏幕,但无法使其工作。


当你的数学不太好(像我一样)时,乍一看可能会很难理解。但我向您保证,一旦您开始使用这些方程,您将学会欣赏它们的强大功能和易用性。

初步版本:根据您的评论,此答案可能需要一些更新。

首先,snippet首先是最终代码,稍后解释(如tl;dr)。最好先将其保存在新的 HTML 文档中,在浏览器中打开该文档并开始调整大小...

/********************************/
/* a few preferred global rules */
/********************************/
html,body {
    box-sizing: border-box;     /* use client+padding+border in calculations */
    height: 100%; width: 100%;  /* to fill full viewport */
    margin: 0;                  /* getting rid of HTML spacing */
}
body { min-height: 100vh }      /* to fill full viewport */

*::before,*::after,
 * { box-sizing: inherit }      /* take over parent setting */

/*
    Responsive page padding using
    Linear Equation y=mx+b for points p1(x1,y1) p2(x2,y2)

    Reference
    MathIsFun: Equation of a Straight Line
    https://www.mathsisfun.com/equation_of_line.html

    y = resulting size we need

    m = (y2 - y1) / (x2 - x1),
        fixed result 1

    x = always one of 100vh/vw/vmin/vmax (VX in below CSS calc)
        variable part of our equation, which makes our y change on browser resize

    b = y1 - m * x1 and with m substituted: b = y1 - (y2 - y1) / (x2 - x1) * x1
        fixed result 2

    x1 - minimum viewport size
    y1 - needed size at minimum viewport     

    x2 - maximum viewport size 
    y2 - needed size at maximum viewport
    
    x1,y1,x2,y2 in pixel unit (can be any unit, provided you use the proper unit conversion)

    CSS calc: calc(m * 100VX + b) 
    Final   : calc(mVX + b) => multiply m with 100 to get rid of '* 100VX' 

    top/bottom padding: p1(320,32) p2(1920, 72) => y = 0.025x + 24   (vp height dependent)
    left/right padding: p3(320, 8) p4(1920,320) => y = 0.195x - 54.4 (vp width dependent)

    top/bottom padding:
        m = (72 - 32) / (1920 - 320) = 40 / 1600 = 0.025
        x = vp height dependent, so 100vh
        b = 32 - 0.025 * 320 = 32 - 8 = 24
        CSS calc = calc(0.025 * 100vh + 24px) => calc(2.5vh + 24px) 

    left/right padding:
        m = (320 - 8) / (1920 - 320) = 312 / 1600 = 0.195
        x = vp width dependent, so 100vw
        b = 8 - 0.195 * 320 = 8 - 62.4 = -54.4
        CSS calc = calc(0.195 * 100vw - 54.4px) => calc(19.5vw - 54.4px) 

*/
.padded { padding: calc(2.5vh + 24px)     calc(19.5vw - 54.4px) }
.halfTB { padding: calc((2.5vh + 24px)/2) calc(19.5vw - 54.4px) }
/* half height T/B padding, simply divide result of calc for T/B  by 2 */

/* uncomment to constraint padding below 320, above 1920 *//*
@media screen and (max-width: 320px) { .padded { padding: 32px   8px } }
@media screen and (min-width:1920px) { .padded { padding: 72px 320px } }
/* probably not really needed, just to be complete */

/* Extra: responsive base font size: y = 0.00625x + 12 */
/*        points p1(320,14) p2(1280,20) vp independent where 0.75rem = 12/16 */
body        { font-size: calc(0.625vmin + 0.75rem); line-height: 1.3333 } /* use root fontsize */
:root,html  { font-size: 100% }   /* use browser default fontsize (from browser user settings) */

.child1wide { width: 100% } /* width is restricted by L/R .padded, centered automatically */
.container  { width:  66.667%; margin: 0 auto } /* width restricted by percent%, centered by margin */
<h1 class="padded halfTB">calculated padding versus percentage<br>resize the browser to see the effect</h1>
<h3 class="padded halfTB">normally you would use ".padded" on some main container, now split to show difference</h3>

<div class="child1wide padded">
    <h2>padding with Linear Equation</h2>
    <p>Lorem ipsum dolor sit amet, exerci dolorem est ad. Sumo rebum prompta vim ad. Legendos expetendis id sed. Ex ius quem accusamus, pri et
        deleniti copiosae.</p>
    <p>Cu vel debet nobis, repudiare deseruisse reprehendunt usu ad. Ex elit idque nam. Omnis munere detraxit mei te, eu labore appareat verterem
        est. Mel ex oporteat consectetuer.</p>
    <p>Pro ea nonumy integre, mel at solum corpora. Id viris audiam repudiare cum, pri dolore appareat ex, per propriae detracto tacimates ex.
        Elitr sapientem quo et, usu suas porro tibique cu.</p>
</div>
<div class="container">
    <h2>width 66.667%, margin: 0 auto</h2>
    <p>Lorem ipsum dolor sit amet, exerci dolorem est ad. Sumo rebum prompta vim ad. Legendos expetendis id sed. Ex ius quem accusamus, pri et
        deleniti copiosae.</p>
    <p>Cu vel debet nobis, repudiare deseruisse reprehendunt usu ad. Ex elit idque nam. Omnis munere detraxit mei te, eu labore appareat verterem
        est. Mel ex oporteat consectetuer.</p>
    <p>Pro ea nonumy integre, mel at solum corpora. Id viris audiam repudiare cum, pri dolore appareat ex, per propriae detracto tacimates ex.
        Elitr sapientem quo et, usu suas porro tibique cu.</p>
</div>

正如您所说,您希望在较小的设备上具有响应能力,(几乎)没有间距,在较大的设备上具有“正常”间距,使用@media查询(MQ)将是显而易见的选择。它们在世界各地被许多开发人员广泛使用,我也是如此。

然而,在过去的几年里,我学会了使用一个方程(Codepen:响应式排版)来确定特定浏览器视口大小所需的大小,而不是使用 MQ 列表测试特定 vp 大小并在特定断点处设置大小。

E.g.:

.some-class: { font-size: calc(0.625vmin + 12px) }

可以做完全相同的事情

.some-class { font-size: 13px } @media (min-size: 320px) { .some-class { font-size: 14px } } @media (min-size: 480px) { .some-class { font-size: 15px } } @media (min-size: 640px) { .some-class { font-size: 16px } } @media (min-size: 800px) { .some-class { font-size: 17px } } @media (min-size: 960px) { .some-class { font-size: 18px } } @media (min-size: 1120px) { .some-class { font-size: 19px } } @media (min-size: 1280px) { .some-class { font-size: 20px } }

管他呢font-size在任何给定时刻您需要的断点上。

正如您所看到的,一次计算而不是八个 CSS 规则。为了实现这一点,我们需要使用一个

'线性方程:y = mx + b' (MathIsFun:直线方程,通俗易懂的中学解释,非常值得一读)。

where:

  • y = mx + b,我们需要的响应结果
  • m = (y2 - y1) / (x2 - x1),线的陡度,固定值
  • x = 始终 100vmin/vh/vw/vmax,变量值
  • b = y1 - m * x1,视口大小为0(x=0)时y的值,固定值
  • x-axis浏览器视口大小
  • y-axis(响应式)尺寸

for

  • 点 1 (x1,y1),线上最低点,最小值浏览器视口大小,最小值所需尺寸
  • 点 2 (x2,y2),线上最高点,最大值浏览器视口大小,最大。所需尺寸

我们本质上做的是:

  • 在 XY 图上选择一个低点和一个高点,作为我们需要的最小和最大响应尺寸
  • 在两点之间画一条假想线
  • 并且有CSScalc()计算同一行上的所有其他点作为我们需要的响应大小(字体、边距、填充、宽度、高度等)在任何给定时间.

Pro:CSS 更少,维护更少

Con:编码时需要更多准备,并且仅适用于直线(不包括火箭科学)。例外情况calc()结果仍然需要一些 MQ。

该代码片段使用几个示例通过逐步方程式进行了大量注释:

  • 响应式基本字体大小,body { font-size: calc() }
  • 响应式页面填充,.padded { padding: calc(2.5vh + 24px) calc(19.5vw - 54.4px) }
  • 响应式半顶部/底部填充,简单划分.padded calc(2.5vh + 24px) by 2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除小型设备(手机)上的边距空白 的相关文章

  • 仅 IE9_有时_会忽略

    我们正在开发一个大量使用 这是典型的 TYPO3 网站 该网站是在子目录中开发的 稍后将被重新定位到顶级目录 因此我们无法轻易删除 我们的客户告诉我们 有时当她浏览新页面时 她得到的页面内容没有应用布局 我们对此进行了调试 仅在 IE9 中
  • 为什么开发者讨厌 iframe? [复制]

    这个问题在这里已经有答案了 可能的重复 iframe 被认为是 不好的做法 吗 https stackoverflow com questions 362730 are iframes considered bad practice 在与
  • 引导导航栏菜单与文本重叠

    我使用最新版本的引导程序 当我调整屏幕浏览器的大小时 使用小切换按钮下拉导航栏时 导航栏会重叠页面上的文本 而不是向下推页面内容 我已经多次研究过这个问题 我尝试将 padding bottom 放在导航栏上 将 padding top 放
  • 指南针字体输出错误的字体文件路径

    font face font family HelveticaNeueLTStd Lt src url css fonts HelveticaNeueLTStd Lt otf format opentype 这是我的指南针代码的输出 inc
  • 为什么我的列表项项目符号与浮动元素重叠

    我有一个 XHTML Strict 页面 我在其中将图像浮动在常规文本段落旁边 一切都很顺利 除非使用列表而不是段落 列表的项目符号与浮动图像重叠 更改列表或列表项的边距没有帮助 边距是从页面左侧开始计算的 但浮动会将列表项推到右侧insi
  • 当共享相同的行和列时,将网格项设置为不重叠

    现在 当两个网格项共享相同的行和列时 它们会相互重叠 div class some grid container div Item 1 div div Item 2 div div 我如何让它们不重叠 当共享相同的行和列时 其行为可能类似于
  • 先按行再按列布局 div

    我有一个容器div and 3 div里面如下 div div 1 div div 2 div div 3 div div 不知道每一个的内容div内部 但它们的高度和宽度是可变的 集装箱的高度由最高的决定div inside 我想展示这些
  • 如何在有序列表中组合数字和字母?

    如何在 CSS 中用数字和字母递增有序列表 ol nested margin bottom 0 counter reset item ol nested li display block position relative ol neste
  • jQuery - 如何从 div > p 获取文本

    如何从 div 类中获取主题名称 div class subject img src image eng jpg p English p div div class subject img src image bio jpg p Biolo
  • 自定义rc-time-picker的样式

    我在用rc time picker我的项目的包 但我在自定义样式时遇到问题pop up of my time picker成分 这是我的组件的屏幕截图 首先 我需要更改时间的背景颜色item在当时li from light grey 在屏幕
  • 如何使用 JavaScript 创建链接?

    我有一个标题字符串和一个链接字符串 我不知道如何将两者放在一起以使用 JavaScript 在页面上创建链接 任何帮助表示赞赏 我试图解决这个问题的原因是因为我有一个 RSS 源并且有一个标题和 URL 列表 我想将标题链接到 URL 以使
  • 为什么我的淘汰单选按钮在另一个具有点击绑定的元素内时会失败?

    我有一个单选按钮列表 我想要点击 li 他们还检查单选按钮 这一切都有效 直到我放了一个name单选元素上的属性 然后我的代码停止工作 我的代码如下所示 ul li li ul li
  • 在表格上使用上下文样式将点边框应用于特定单元格

    我以前有过问了一个问题 https stackoverflow com questions 6326266 issue with applying dotted border to cells in table design在这个问题上 你
  • 将图像作为框架放置在 iframe 周围?

    我有一个网站尝试以移动格式显示 但在宽屏幕上 我确信 iframe 是正确的选择 我正在尝试将 iframe 加载到 iPhone 的图像中 你可以看一个例子here http webfro gs south tour iframe tes
  • 响应式图像 - srcset 和尺寸属性 - 如何正确使用两者:基于设备像素比和基于视口的选择一起?

    到目前为止 我经常读到这个问题 并且它也发生在我自己的项目中 这里介绍一下我到目前为止所发现的关于 srcset 和 size 属性的内容 关于如何使用有两种不同的可能性srcset 属性 来源 w3c http w3c github io
  • 图像无法在带有 DOM 的 IE 中加载:控制台中的 7009 错误(无法解码)

    当在 IE 中的单个页面上加载许多图像时 在 IE11 中重现 其中一些图像开始加载失败 并在控制台中出现类似以下警告的内容 DOM7009 无法解码 URL 处的图像 某些唯一的 url 当我查看网络流量时 似乎确实从服务器收到了每个图像
  • 为什么 IE8 在我的图像锚标记上添加底部边框?

    我知道 这很可悲 但今天早上 IT 刚刚在我的机器上安装了 IE8 我立刻遇到了一个明显的问题 尽管我知道答案就在我面前 但我已经把它搞砸了太久了 首先 这是网站 www mchenry edu http www mchenry edu 在
  • 在 HTML 下拉列表中有一个滚动条

    我正在寻找一种在 HTML 的下拉列表中添加滚动条的方法 这样如果下拉列表包含的内容超过例如 5 项 将出现滚动条以查看其余项 这是因为我将被迫列出一些大清单 过去几个小时我一直在谷歌上搜索它 但没有运气 它需要适用于 IE8 FF 和 C
  • 使用css bootstrap时如何仅向一列添加右边框?

    我正在尝试使用CSS引导框架 http getbootstrap com css tables在我的项目中 我正在使用带有以下类的表table table bordered table striped 我想删除除第一列之外的所有列的边框 这
  • 在 Nexus 7 2013 上更改方向时 CSS 媒体查询不起作用

    我目前正在我的笔记本电脑 台式电脑和 Nexus 7 2013 上测试 CSS 媒体查询 除了 Nexus 7 之外 它们在台式机和笔记本电脑上都运行良好 当我更改方向时 除非刷新页面 否则样式不会应用 例如 以纵向模式握住设备时 页面正常

随机推荐

  • 文件内容搜索c#

    我正在尝试在我的应用程序中实现此功能 就像在 Windows 中一样 我在搜索框中输入内容 如果在设置中选中了文件内容 则无论它是文本文件还是 pdf word 文件 搜索都会返回包含搜索框中字符串的文件 所以 我已经想出了一个用于文件和文
  • 为 LinkedList 类实现 C# IEnumerable

    我正在尝试在 Linux 上使用 monoDevelop 用 C 编写自定义 LinkedList 类 只是为了测试和学习 下面的代码永远不会编译 我不知道为什么 它甚至没有告诉我出了什么问题 它所说的只是 错误 编译器似乎已崩溃 检查构建
  • WEB-INF/classes 中的 war 包中的 EJB 3.1 - javax.ejb.CreateException:无法创建无状态 EJB [重复]

    这个问题在这里已经有答案了 我想 我误解了在war包中打包ejb beans的规则 Goal 我想在war包中使用ejb beans 设想 我的战争中有一些豆子 Stateless public class RegistrationServ
  • android html.fromhtml 从网络加载图像

    我们如何 html fromhtml 从网络加载图像并设置到 imageview 中 异步图片下载 首先要做的是确保您请求下载清单文件中图像的权限
  • 如何为非英语版本的项目显示适当的语言标签

    我有一个带有 URI 的项目http hdl handle net 10862 717用我们当地的语言 有英文版本 http hdl handle net 10862 152
  • 以数组形式发送数据的多个单选按钮组

    我尝试过以下方法 在我的控制器中 我有一个数组 现在的问题是我只能选择这四个中的一个
  • 我怎样才能将utf8字符转换为iso8859-1

    问题就是标题说的 谁能告诉我如何在红宝石中做到这一点 更新 ruby iconv从 Ruby 1 9 3 开始已被encode方法 看J rg W Mittag 的回答详细信息 但简而言之 utf8string pp iso string
  • WSO2 API Manager,是否可以禁用访问令牌机制

    是否可以在 WSO2 API Manager 中禁用访问令牌机制 所以我们不必设置身份验证承载标头 我知道我可以将访问令牌超时设置为 1秒 以使其无限 Answer recommended by WSO2 Collective 是的你可以
  • 我应该在每个页面上重新生成会话 ID 吗?

    我正在尝试为我的用户身份验证会话添加更多安全性 当用户登录时我regenerate session id但我想听听你的回答 如果我regenerate session id在我验证用户身份的每个页面上都会帮助我 在每个页面上验证用户身份 我
  • 如何使用 python 使用 SSL 连接到 Elasticsearch?

    我正在尝试使用 SSL 从 Python 连接到 Elasticsearch 节点 我正在使用基本代码 from elasticsearch import Elasticsearch from ssl import create defau
  • 如何查看我的反应式扩展查询正在做什么?

    我正在编写一个包含大量运算符的复杂反应式扩展查询 我怎样才能看到发生了什么 我问并回答这个问题是因为它出现得相当多 并且可能具有良好的通用性 在开发 Rx 运算符时 您可以随意将此函数附加到它们以查看发生了什么 public static
  • Android - 管理布局景观

    我需要一个活动根据方向加载不同的片段 活动 gt 肖像 片段肖像 活动 gt 景观 片段景观 这是activity layout xml
  • PostgreSQL 检查时间戳字段是否为空

    我遵循了这些指示检查用户登录时是否被软删除 在下面的示例中 我可以检查布尔值 Class User lt ActiveRecord Base def self find for authentication conditions super
  • 从 CSD 查找二维空间谱的正确方法

    我尝试从上述方程中实现空间谱 附后 其中kX kY是k空间中的网格点 C w r 第 i 个和第 j 个传感器之间的互谱密度 这里是大小为 ns ns gt 传感器数量的矩阵 x y 是传感器之间的距离 nk kx ky 的网格密度 我寻找
  • 调用 OnTriggerStay() 时检查按键情况

    我有一个 NPC 当玩家碰撞器与 NPC 发生碰撞时 我的玩家可以与其交谈 我使用这段代码来实现这一点 private void OnTriggerStay2D Collider2D other if other gameObject ta
  • Asp.Net Mvc 在临时数据视图中显示异常

    我正在处理基本控制器中的错误 我需要在剃刀视图中显示存储在 tempdata 中的错误 异常类型 我怎样才能做到这一点 基本控制器代码 protected override void OnException ExceptionContext
  • iPhone 版 Google 移动分析的调度问题

    我已将 Google 移动分析集成到我的 iPhone 应用程序中 但由于某种原因 页面浏览量和事件未调度 我将其放入我的应用程序委托 applicationDidFinishLaunching 方法中 我已经删除了 UA 字符串 GANT
  • Javascript 获取数据表列名称

    我正在使用 Google 图表构建堆叠条形图 创建一个监听器来处理 onclick 事件 共有三列 站点名称 已完成和未完成 我希望侦听器捕获用户是否单击 完成或不完整 当我单击第一行数据时 这就是我得到的 我知道在我的 getColumn
  • Perl:匹配模式后如何打印下一行?

    我想在匹配图案或线条后打印特定数据 我有一个这样的文件 List car Design S Date Sun 10 10 b black g green r red Car Type No color N17 bg099 g Total 1
  • 删除小型设备(手机)上的边距空白

    我不希望小型设备的边缘有任何空白 当屏幕已经很小时 使用除屏幕全宽之外的任何内容都会适得其反 所以我通过 WordPress 使用主题 但我找到了容器 div 并能够修改它 我想让它更窄 我还声明了一个比容器 宽度为 65 更宽的 div