Web前端新手应该知道的CSS长度单位

html-css016

Web前端新手应该知道的CSS长度单位,第1张

今天小编要跟大家分享的文章是关于Web前端新手应该知道的CSS长度单位!众所周知CSS技术我们虽然很熟悉,在使用的过程却很容易被困住,这让我们在新问题出现的时候变得很不利。随着web继续不断地发展,对于新技术新解决方案的要求也会不断增长。

因此,作为网页设计师和前端开发人员,我们别无选择,必须熟悉我们手上的工具,做到知己知彼,这样才能百战不殆。为了帮助大家更好的工作小编今天为大家分享一些css的长度单位,希望能够对小伙伴们有所帮助。

1、rem

我们首先介绍下和我们熟悉的很相似的货。em

被定义为相对于当前对象内文本的字体大小。炒个栗子,如果你给body小哥设置了font-size字体大小,那么body小哥的任何子元素的1em就是等于body设置的font-size。

Test

body{

font-size:14px

}

div{

font-size:1.2em

//calculatedat14px

*1.2,or16.8px

}

你看,这里div这娃的字体大小是1.2em。解释来说,就是他从body爹爹那里继承的字体大小(这里是14px)的1.2倍,结果就是16.8px。

但是,如果你用em一层一层级联得定义嵌套元素的字体大小又会花生什么事情呢?在下面这一小段代码里我们应用了和上面一样一样的CSS,每一个div都从它上一级父元素继承了字体大小,并且逐渐得增加。

Test

Test

Test

虽然在某些地方这正是我们想要的,但是通常情况下我们还是希望就依赖单一的相对度量单位就好。这时候嘛,我们就可以使用rem

了。‘r’是“root”的缩写,意思就是1rem等于根元素的字体大小大部分情况下,根元素就是元素了。

html{

font-size:14px

}div{

font-size:1.2rem

}

这样在上面的那三个嵌套的div娃们的字体大小都是1.2*14px=16.8px了。

2、适用于网格布局

Rems

不仅仅只是在设置字体大小上很方便。再炒个栗子,你可以用基于html根元素字体大小的rem作为整个网格布局或者UI库的大小单位,然后在其他特定的地方用em单位。这样将会给你带来更多的字体大小和伸缩的可控性,

.container{

width:70rem

//70*14px=980px}

概念上来说,这个方法的思想就是让你的界面根据你的内容进行缩放。但是,这样做并不是对所有的情况都有意义。

3、vhandvw

响应式Web设计离不开百分比。但是,CSS百分比并不是所有的问题的最佳解决方案。CSS的宽度是相对于包含它的最近的父元素的宽度的。但是如果你就想用视口(viewpoint)的宽度或者高度,而不是父元素的,那该肿么办?这就是

vh和vw单位为我们提供的。

1vh等于1/100的视口高度。栗子:浏览器高度900px,1vh=900px/100=9px。同理,如果视口宽度未750,1vw

=750px/100=7.5px。

可以想象到的,他们有很多很多的用途。比如,我们用很简单的方法只用一行CSS代码就实现同屏幕等高的框。

.slide{

height:100vh

}

假设你要来一个和屏幕同宽的标题,你只要设置这个标题的font-size的单位为vm,那标题的字体大小就会自动根据浏览器的宽度进行缩放,以达到字体和viewport大小同步的效果,有木有?!

4、vminandvmax

vh和vm依据于视口的高度和宽度,相对的,vmin和

vmax则关于视口高度和宽度两者的最小或者最大值。比如,浏览器的宽度设置为1100px,高度设置为700px,1vmin=1px,1vmax=

11px。

如果宽度设置为800px,高度设置为1080px,1vmin就等于8px,1vmax则未10.8px。

那么问题来了,我们应该在什么场景下使用这两个单位呢?

假设有一个元素,你需要让它始终在屏幕上可见。

只要对其高度和宽度使用vmin单位,并赋予其低于100的值就可以做到了。再来个栗子,可以这样定义一个至少有两个边触摸到屏幕的方形:

.box{

height:100vmin

width:100vmin

如果你要让这个方形框框始终铺满整个视口的可见区域(四边始终触摸到屏幕的四边)

.box{

height:100vmax

width:100vmax

}

结合使用这些单位可以为我们提供一个新颖有意思的方式来灵活地利用我们视口的大小。

5、exandch

ex和ch单位,类似于em和rem,依赖于当前的字体和字体大小。但是,不同的是,这两货是基于字体的度量单位,依赖于设定的字体。

ch单位通常被定义为数字0的宽度。你可以在Eric

Meyers的博客里找到关于它的一些有意思的讨论,例如将一个等宽字体的字母”N”的宽度设置为40ch,那么在另一种类型的字体里它却可以包含40个字母。

这个单位的传统用途主要是盲文的排版,但是除此之外,肯定还有可以应用他的地方。

ex定义为当前字体的小写x字母的高度或者1/2的1em。很多时候,它是字体的中间标志。

x-heighttheheightofthelowercasex

这些单位有很多用途,大部分用于版式的微调。比方说,sup元素(上角文字标),可以通过position:relativebottom:1ex实现

类似的方法,你可以实现一个下角文字标。浏览器默认的方式是利用

上标和下标特定垂直对齐规则,但是如果你想更细粒度更精确得控制,你可以像下面这样做:

sup{

position:relative

bottom:1ex

}

sub{

position:relative

bottom:-1ex

}

结论

持续关注不断发展壮大的CSS技术无疑是很重要的,这样你才能掌握你所持有的工具的全部技能。说不定将来你遇到的某个特殊的问题就需要使用这些复杂的单位来解决。

以上就是小编今天为大家分享的额关于Web前端新手应该知道的CSS长度单位的文章,希望本篇文章能够对正在从事web前端工作和喜欢web前端技术的小伙伴们有所帮助。想要了解更多web前端相关知识记得关注北大青鸟web培训官网。最后祝愿小伙伴们工作顺利!

1、选择器用于指定CSS样式作用的HTML对象,花括号内是对该对象设置的具体样式。

2、属性和属性值以“键值对“ 的形式出现。

3、属性是对指定的对象设置的样式属性,例如字体大小、文本颜色等。

4、属性和属性值之间用英文“:“连接。

5、多个“键值对”之间用英文“”进行区分。可以用段落和表格的对齐的演示。

CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。

扩展资料:

CSS作为一种定义样式结构如字体、颜色、位置等的语言,被用于描述网页上的信息格式化和显示的方式。CSS样式可以直接存储于HTML网页或者单独的样式单文件。

无论哪一种方式,样式单包含将样式应用到指定类型的元素的规则。外部使用时,样式单规则被放置在一个带有文件扩展名_css的外部样式单文档中。

样式规则是可应用于网页中元素,如文本段落或链接的格式化指令。样式规则由一个或多个样式属性及其值组成。内部样式单直接放在网页中,外部样式单保存在独立的文档中,网页通过一个特殊标签链接外部样式单。

一、Css书写顺序:

1.位置属性(position, top, right, z-index, display, float等) 

2.大小(width, height, padding, margin)

3.文字系列(font, line-height, letter-spacing, color- text-align等) 

4.背景(background, border等)

5.其他(animation, transition等)

二、Css语法:

命名一般为小写英文字母。

为了代码的易读性,在每个声明块的左花括号前添加一个空格。

每条声明语句的 : 后应该插入一个空格。

所有声明语句都应当以分号结尾。最后一条声明语句后面的分号是可选的,但是,如果省略这个分号,你的代码可能更易出错。

对于属性值或颜色参数,省略小于 1 的小数前面的 0 (例如,.5 代替 0.5;-.5px 代替 -0.5px)。

十六进制值应该全部小写,例如,#fff。

尽量使用简写形式的十六进制值,例如,用 #fff 代替 #ffffff。

避免为 0 值指定单位,例如,用 margin: 0 代替 margin: 0px。

Css常用的一些命名:

可参考:CSS 常用命名 - 彼岸时光 - 博客园。

三、Css的引入:

Css的引入一般有两种,link和@import,一般建议使用link引入。这样可以避免考虑@import的语法规则和注意事项,避免产生资源文件下载顺序混乱和http请求过多的烦恼。

四、Css的命名规范(BEM,OOCSS):

什么是BEM:BEM的意思就是块(block)、元素(element)、修饰符(modifier),是由Yandex团队提出的一种前端命名方法论。这种巧妙的命名方法让你的CSS类对其他开发者来说更加透明而且更有意义。

命名约定如下:

.block{} // 块即是通常所说的 Web 应用开发中的组件或模块。每个块在逻辑上和功能上都是相互独立的。

.block__element{} // 元素是块中的组成部分。元素不能离开块来使用。BEM 不推荐在元素中嵌套其他元素。

.block--modifier{} // 修饰符用来定义块或元素的外观和行为。同样的块在应用不同的修饰符之后,会有不同的外观。

优点:

BEM 的优点在于所产生的 CSS 类名都只使用一个类别选择器,可以避免传统做法中由于多个类别选择器嵌套带来的复杂的属性级联问题。在 BEM 命名规则中,所有的 CSS 样式规则都只用一个类别选择器。因此所有样式规则的特异性(specificity)都是相同的,也就不存在复杂的优先级问题。这可以简化属性值的层叠规则。代码清单中的命名规则的好处在于每个 CSS 类名都很简单明了,而且类名的层次关系可以与 DOM 节点的树型结构相对应。

缺点:

这样类名过于长,且复杂。

什么是OOCSS(面向对象CSS):

OOCSS 表示的是面向对象 CSS(Object Oriented CSS),是一种把面向对象方法学应用到 CSS 代码组织和管理中的实践。 OOCSS最关键的一点就是:提高他的灵活性和可重用性。这个也是OOCSS最重要的一点。OOCSS主张是通过在基础组件中添加更多的类,从而扩展基础组件的CSS规则,从而使CSS有更好的扩展性。

OOCSS的优点:

减少CSS代码。

具有清洁的HTML标记,有语义的类名,逻辑性强的层次关系。

语义标记,有助于SEO。

更好的页面优化,更快的加载时间(因为有很多组件重用)。

可扩展的标记和CSS样式,有更多的组件可以放到库中,而不影响其他的组件。

能轻松构造新的页面布局,或制作新的页面风格。

OOCSS的缺点:

OOCSS适合真正的大型网站开发,因为大型网站用到的可重用性组件特别的多,如果运用在小型项目中可能见不到什么成效。所以用不用OOCSS应该根据你的项目来决定。如果没用巧妙的使用,创建组件可能对于你来说是一堆没用的东西,成为一烂摊子,给你的维护带来意想不到的杯具,说不定还是个维护的噩梦。

  欢迎到优就业来了解