首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么你永远不应该在CSS中使用px来设置字体大小

案例证明:在CSS中, px , em 或 rem 单位之间没有功能上的区别的想法是一个我一遍又一遍听到的误解,因此我想在这里发帖来解决这个问题。 我们要非常清楚:在CSS中使用的单位绝对很重要。...在高分辨率屏幕上浏览网页,如果CSS中的 1px 仍然对应于一个字面设备像素,那么甚至阅读任何内容都将非常困难,因为像素本身正在迅速缩小。毕竟,现代智能手机的分辨率甚至比高清电视还要高。...在我们的 CSS 中, 1px 的东西可能会占用多个物理硬件像素,而我们没有任何纯 CSS 的方法来指定一个字面设备像素。但这没关系,因为它们通常太小了,我们不想去处理它们。...大多数情况下,这些并不在本讨论的语境中真正重要,但我认为了解这些还是很好的。重要的部分是: 1px 等于浏览器视为单个像素的任何内容(即使在硬件屏幕上它不是真正的像素)。...继续讲述不严格相关但仍然有趣的小知识: "em" 是一个排版术语,实际上比计算机早了几十年。在排版上,一个 em 等于当前字体大小。

1.8K20

移动web开发之rem适配布局

使用@media查询,可以针对不同的媒体类型定义不同的样式 @media可以针对不同的屏幕尺寸设置不同的样式 当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面 目前针对很多苹果手机...、android手机、平板等设备都用得到多媒体查询 2.2语法规范 /* 这句话的意思是:在我们屏幕上 并且 最大的宽度是 800像素 设置我们想要的样式 */...的弊端 css是一门非程序式语言,没有变量、函数SCOPE(作用域)等概念 css需要书写大量看似没有逻辑的代码,css冗余度是比较高的 不方便维护及扩展,不利于复用 css没有很好的计算能力...作为CSS的一种形式的扩展,它并没有减少CSS的功能,而是在现有的css语法上,为CSS加入程序式语言的特性。...那么在320px设备的时候,字体大小为320/15就是21.33px 用我们页面元素的大小 除以不同的html 字体大小会发现他们比例还是相同的 比如我们以750为标准设计稿 一个

1.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    rem适配布局

    rem 作用于非根元素字体大小时,相对于根元素字体大小;rem 作用于根元素字体大小时,相对于其初始字体的大小。...使用@media 查询,可以针对不同的媒体类型定义不同的样式; @media 可以针对不同的屏幕尺寸设置不同的样式; 重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面; 苹果手机、Android...需要大量看似没有逻辑的代码,CSS 冗余度较高 不方便维护及扩展,不利于复用 没有良好的计算能力 介绍 Less(Leaner Style Sheets 的缩写)是一门 CSS 扩展语言,成为 CSS...常见的 CSS 预处理器: Sass、Less、Stylus Less 作为 CSS 一种形式上的扩展,没有减少 CSS 的功能,而是在现有的 CSS 语法上,加入程序式语言的特性。...实现 使用媒体查询根据不同设备按比例设置 html 的字体大小 页面元素使用 rem 做单位。这样的话,当 html 字体大小变化(即不同设备)时,元素尺寸也会发生变化,从而达到等比例缩放的适配。

    1.4K30

    移动开发-媒体查询布局

    : CSS是非程序式语言,没有变量、函数、SCOPE(作用域)等概念 CSS需要书写大量看似没有逻辑的代码,CSS 冗余度是比较高的 不方便维护及扩展,不利于复用 CSS没有很好的计算能力 非前端开发工程师来讲...一种形式的扩展,它并没有减少CSS功能,而是在现有的CSS语法上,为CSS加入程序式语言的特性 它在CSS的语法基础之上,引入了变量,Mixin(混入),运算以及函数等功能,大大简化了CSS的编写,并且降低了...用页面元素的大小 除以不同的html字体大小会发现它们比例还是相同的 50*50像素的页面元素,在320屏幕下,就是 50 / 21.33 转换为rem 就是2.34rem 320屏幕下,html字体大小为...字体大小 3️⃣ Flexble.js + rem 方案 : 不需要再写不同屏幕的媒体查询,因为里面js做了处理 它的原理是把当前设备划分为10等份,在不同设备下,比例还是一致的 我们要做的,就是确定好当前设备的...来去算 Github地址:https://github.com/amfe/lib-flexible 4️⃣ VSCode px转换rem插件: CSSrem 用不同的字体大小时记得在设置里 设置字体大小

    1.3K30

    「译」如何编写 React 应用程序的样式

    在处理了多年的类似问题之后,我得出的结论是,可重用的CSS有点像红鲱鱼。屏幕上有许多元素是相似的,但在特定情况下却有所不同。...考虑正确的CSS架构会给一个我们没有合适的工具来处理的项目增加很多不必要的复杂性。我们本质上是在实现一种继承形式,但没有我们在编写代码时获得的智能感知。...重用复杂元素的CSS是很困难的,但所有这些CSS都可以由同一组“设计标记”来支持。设计标记是表示设计系统的最小单位的原子值 - 颜色、字体大小、间距、动画以及我们需要重用的所有其他内容。...当我将CSS重用为一个按钮时,我不会把它放在任何其他元素上,而是把它放在一个按钮上。输入字段、布局和我构建的任何自定义组件也是如此。我正在重用组件,而不是class。但这有什么不同呢?...虽然我与 Tailwind 没有任何关系,但我认为使用实用程序类的样式方法是最具可扩展性的。在 CSS 的上下文中,可扩展性意味着能够在不成比例增加样式工作的情况下向页面添加更多内容。

    10110

    rem适配布局

    1、rem基础 rem单位 rem (root em)是一个相对单位 ,类似于em , em是父元素字体大小。 不同的是rem的基准是相对于html元素的字体大小。...CSS 需要书写大量看似没有逻辑的代码, CSS冗余度是比较高的。 不方便维护及扩展,不利于复用。...CSS没有很好的计算能力 非前端开发工程师来讲 ,往往会因为缺少CSS编写经验而很难写出组织良好且易于维护的CSS代码项目。...做为CSS的一种形式的扩展,它并没有减少CSS的功能,而是在现有的CSS语法上,为CSS加入程序式语言的特性。...④那么在320px设备的时候 ,字体大小为320/15就是21.33px ⑤用我们页面元素的大小除以不同的html字体大小会发现他们比例还是相同的 ⑥比如我们以750为标准设计稿 ⑦一个100*100

    1.9K30

    前端成神之路-移动web开发_rem布局

    使用 @media查询,可以针对不同的媒体类型定义不同的样式 @media 可以针对不同的屏幕尺寸设置不同的样式 当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面 目前针对很多苹果手机...less 基础 维护css弊端 CSS 是一门非程序式语言,没有变量、函数、SCOPE(作用域)等概念。 CSS 需要书写大量看似没有逻辑的代码,CSS 冗余度是比较高的。...做为 CSS的一种形式的扩展,它并没有减少CSS的功能,而是在现有的CSS语法上,为CSS加入程序式语言的特性。...,字体大小为320/15就是 21.33px ⑤用我们页面元素的大小除以不同的 html字体大小会发现他们比例还是相同的 ⑥比如我们以750为标准设计稿 ⑦一个100100像素的页面元素在 750屏幕下...,我们默认html字体大小为 50px,注意这句话写到最上面 rem 适配方案2 手机淘宝团队出的简洁高效 移动端适配库 我们再也不需要在写不同屏幕的媒体查询,因为里面js做了处理 它的原理是把当前设备划分为

    1.1K21

    CSS单位em和rem

    写过样式的都知道CSS是有单位的,想要写出还原设计稿的完美样式,离不开好的单位。...应该很多都知道rem是根据HTML元素设置的字体大小来定义单位,em是根据父元素设置的字体大小来设置,但是很多没有真的搞清楚这两个单位对应px单位到底是怎么对应的。...根据这个特性,我们就可以动态的设置HTML的字体大小,来自适应不同手机分辨率,当然,最好我们设置成能整十整百的计算,好比1rem=100px,而不是1rem=75px,这样方便写样式的时候计算。...当我们没有设置字体大小的时候 p style="font-size: 1em">这是em单位p> 默认的是浏览器默认字体大小,Chrome是16px。...Em单位是优先根据自身的字体大小,如果没有就向上寻找最近父元素有设置字体大小来换算的。其实只要写一写上面的代码然后看一看浏览器显示的大小就很容易知道em和rem是根据上面来换算。 (完)

    1.1K20

    5个改变你编写CSS方式的新功能

    基本上,如果 form 没有无效的 input ,它只包含有效的 inputs ,所以它是有效的 form 。...如果你想知道用户是否聚焦在子元素上怎么办?如果页面上有一个iframe或者菜单中的子链接,这将非常有用。...尽管第二个p选择器更具体(因为它在更深的位置),但由于它位于“type”层内部,20像素的字体大小不会覆盖18像素的字体大小 也可以这么认为, @layer 内的所有内容都写在样式表的顶部,就像这样:...我们可以完全抛弃 transforms ,并且在没有它们的情况下为我们的元素添加样式。...这在非方形屏幕上非常方便,比如智能手表或一些手机的屏幕弯曲到边缘。你可以直接使用这些 safe-area-inset-* ,但它们的值是0像素。

    24420

    2021前端面试高频 HTML + CSS

    ❝ 单冒号 : 用于 CSS3 伪类选择器中 双冒号 : 用于 CSS3 伪元素选择器中 伪类选择器 是用来向元素添加特殊效果的,用伪类定义的样式并不是作用在标记上,而是作用在标记的状态上,如a标签的:...p::selection 被用户选取的部分 ::before p::before 在选择器前增加内容 ::after p::after 在选择器后增加内容 ❞ 3....CSS 样式权重 ❝css优先级规则: css选择规则的权重值不同时,权重值高的优先; css选择规则的权重值相同时,后定义的规则优先; css属性后面加 !...❝ 不同浏览器的默认的 margin 和 padding 不同。...rem rem是CSS3新增的一个相对单位,使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。

    95040

    css应知应会 第一集

    p 标记的文本颜色 为 蓝色 3、想将所有的 p 标记的颜色,更改为 粉色 在 HTML 中,想实现标记的样式,只能靠属性完成 使用属性设置页面元素样式的问题...: 1、相同的样式在不同的标记中用的是不同的属性 ...2、由于属性的独立性,导致相同的操作,在不同的元素中要多次实现 p> 疑是地上霜... 中 3、外部样式表 将样式内容定义在外部的 CSS 文件中(***.css) 在HTML页面中引入 ***.css 去使用样式内容 详解...允许为一个元素定义多个样式规则,如果样式规则中的样式属性不冲突的时候,他们则都可以被应用到元素上 3、优先级 在层叠性基础上,如果样式属性声明冲突时,会按照不同使用方式的优先级来应用样式

    1K20

    8个用于编写可维护,简化的前端代码的CSS策略

    1.不要写出不需要的样式定义 例如:编写display:block的时候,很多元素默认都有这种风格。 另一个例子是在元素上定义字体大小,它将继承你正在定义的正文字体大小。...编写可重用的css类可以解决一些事情: 它可以确保您的设计在不同的页面之间保持一致。当你在很多页面上共享你的CSS类时,你知道当你改变这个类时,它会在每一个出现在页面上的页面上改变。...另外,因为我将自己的hover定义在自己的锚点上,所以红色链接将会变成黑色悬停,而不必定义任何其他样式。...important的移动设备类来重写.hide类以显示它。 我从来没有找到一个有效的借口来使用!important的,而不是在别人的错误的地方用!important来定义。...7.有时间和条件重新开始,但仔细考虑你的选择 重新发明轮子的例子可能是在客户端项目中创建自己的网格CSS框架。 根据我的经验,除非你想知道它是如何工作的,否则自己写这些东西并没有多大的好处。

    1.4K90

    【小程序_02】布局方式

    2.5 align-content(设置侧轴上的子元素的排列方式【多行】 ) 设置子项在侧轴上的排列方式 并且只能用于子项出现 换行 的情况(多行),在单行下是没有效果的 属性 说明 flex-start...默认值为 auto,表示继承父元素的 align-items 属性,如果没有父元素,则等同于 stretch span:nth-child(2) { /* 设置自己在侧轴上的排列方式 *...不同的是rem是相对于html元素的字体大小 /* 父元素 为 12px */ div { font-size: 12px; } /* 此时 p 字体大小是 60px*/ p { font-size...使用 @media查询,可以针对不同的媒体类型定义不同的样式 @media 可以针对不同的屏幕尺寸设置不同的样式 当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面 目前针对很多苹果手机...做为 CSS的一种形式的扩展,它并没有减少CSS的功能,而是在现有的CSS语法上,为CSS加入程序式语言的特性。

    1.4K20

    CSS尺寸单位介绍

    css中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同的。...在早先的移动设备中,屏幕像素密度都比较低,如iphone3,它的分辨率为320x480,在iphone3上,一个css像素确实是等于一个屏幕物理像素的。...其他品牌的移动设备也是这个道理。 物理像素 它是显示器(电脑、手机屏幕)最小的物理显示单位,物理像素指的是显示器上最小的点。物理像素的大小取决于屏幕。是一个无法改变的属性。...,因为它使用了Retina屏幕,他的dpr是2,所以iPhone 6 的物理像素为 750 1334 在不同的屏幕上(普通屏幕 vs retina屏幕),css中1px所呈现的大小(物理尺寸)是一致的...,能显示的css的px数也不同, 如果我们写一个div,宽度是375px,375px在这个屏幕(iPhone6)上是刚刚满屏,因为这个屏幕宽度刚刚是375px( 设备独立像素), 当我们换另一个宽度是414px

    1.5K30

    CSS尺寸单位介绍

    css中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同的。 在为桌面浏览器设计的网页中,我们无需对这个津津计较,但在移动设备上,必须弄明白这点。...在早先的移动设备中,屏幕像素密度都比较低,如iphone3,它的分辨率为320x480,在iphone3上,一个css像素确实是等于一个屏幕物理像素的。...其他品牌的移动设备也是这个道理。 物理像素 它是显示器(电脑、手机屏幕)最小的物理显示单位,物理像素指的是显示器上最小的点。物理像素的大小取决于屏幕。是一个无法改变的属性。...,因为它使用了Retina屏幕,他的dpr是2,所以iPhone 6 的物理像素为 750 * 1334 在不同的屏幕上(普通屏幕 vs retina屏幕),css中1px所呈现的大小(物理尺寸)是一致的...,能显示的css的px数也不同, 如果我们写一个div,宽度是375px,375px在这个屏幕(iPhone6)上是刚刚满屏,因为这个屏幕宽度刚刚是375px( 设备独立像素), 当我们换另一个宽度是414px

    1.7K20

    寒假提升 | Day1 软件开发-HTML结构-元素剖析

    见资料分享中 2.2 认识网页和网站 网页的显示过程 – 用户角度 用户在浏览器输入一个网站; 浏览器会找到对应的服务器地址,请求静态资源(可以存放在世界上任何一个地方); 服务器返回静态资源给浏览器...服务器本质上也是一台类似于你电脑一样的主机; 但是这个主机有几个特点: 二十四小时不关机的(稳定运行); 没有显示器的; 一般装的是Linux操作系统(比如centos); 那么我以后到公司是不是就看得见服务器了呢...、渲染规则,所以同一网页在不同内核的浏览器中的渲染效果也可能不同。...对网页进行补充 增加标记 -> 元素 -> 浏览器 -> 渲染对应的效果 增加网页的结构 html head title body h1 p div span 案例 – 显示一条新闻 2.3....HTML语言 超文本标记语言 为什么表标记语言?

    61320

    CSS:绝对单位、相对单位

    作者:Abudula__ 我们对单位很熟悉,比如说,千克,千米,米等,这些就是绝对单位,我们又有听到太阳的质量等于33个地球,这个就是相对单位。在CSS中,单位也可以分为这两类。...任何现代显示屏,不管是手机,平板,笔记本还是电视都是由成千上万的像素组成的,所以我们可以使用这些像素来定义长度。 另外 CSS 将光栅图像(如照片等)的显示方式定义为默认每一个图像大小为“1px”。...如此就可以将图像完整的与网页的其它元素排列起来。 但也有人认为px是一个相对单位,因为不同的设备像素大小是不一样的,比如手机屏幕的像素就比电脑小很多。...如果父元素没有设置字体大小,则继续往父级元素查找,直到有设置大小的,如果都没有设置大小,则使用浏览器默认的字体大小。...同理如果该元素没有设置,则一直向父级元素查找,直到找到,如果都没有设置大小,则使用浏览器默认的字体大小。

    2.1K20

    CSS常见样式(一)

    但是这种方法存在一个问题,当用户在浏览器中浏览我们制作的 Web页面时,他改变了浏览器的字体大小(虽然一般人不会去改变浏览器字体大小),这时会使用我们的Web页面布局被打破,这时就提出了使用“em”来定...所以我们在写CSS的时候,需要注意两点: body选择器中声明Font-size=62.5%; 将你的原来的px数值除以10,然后换上em作为单位; 重新计算那些被放大的字体的em数值。...比如说你在#content中声明了字体大小为1.2em,那么在声明p的字体大小时就只能是1em,而不是1.2em, 因为此em非彼em,它因继承#content的字体高而变为了1em=12px。...3、rem是CSS3新增的一个相对单位,是指根元素(root element,html)的字体大小。...补充: px 与 rem 的选择: 对于只需要适配少部分手机设备,且分辨率对页面影响不大的,使用px即可 。

    1.7K30
    领券