vlambda博客
学习文章列表

前端开发技术点总结(二)

        在前端开发过程中有很多好用和常用的样式技术点,这里做一个总结记录。


1、文字显示限制行数,超出部分显示为指定效果

        很多时候我们希望文字超出部分隐藏或者显示为省略号形式,比如标题过长时或者多行字数的处理等等情况。这时候可以使用下面的样式属性进行设置,这里针对的是谷歌浏览器,其他的浏览器自行查阅。

{ display:-webkit-box; -webkit-line-clamp:2; overflow:hidden; text-overflow:ellipsis; -webkit-box-orient:vertical;}

说明:首先设置显示模式为webkit内核的盒子模型,然后设置限定的行数(这里限定了两行,超出部分按接下来设置的属性进行处理),接下来设置超出隐藏,然后文字超出部分显示为省略号形式,最后设置盒子显示方向为垂直方向。

另外,有时候也需要对一行文字做处理,处理成仅仅显示指定个数的文字,其余文字显示成指定情况:
{ white-space: nowrap; max-width:100px; overflow:hidden; text-overflow:ellipsis;}

说明:上面white-space属性设置如何处理元素内的空白,该属性规定段落中的文本不进行换行。与其余属性结合使用使一行文字仅仅显示规定的个数,这里是通过使用max-width限定了文字的显示范围来实现的,超出范围的文字使用省略号代替。


2、calc方法

        有时候在一行内需要并排显示几个元素,但是当前面的元素确定宽度之后,最后一个元素往往无法确定宽度,因为还得考虑屏幕的自适应和响应式,所以这时候可以使用calc进行处理,达到适应不同屏幕宽度的目的。

{ width:calc(100% - 30px);}
<!-- 或者 -->{ width:calc(100vw - 30px);}

说明:通过calc方法,只需要通过屏幕宽度减去其余元素宽度的方式,就可以设置最后的元素的宽度,从而达到了自适应屏幕的目的。


3、按钮或者图标颜色的渐变显示

        为了使按钮或者图标显示得更加漂亮,符合设计人员设计的渐变效果,需要使用渐变方法linear-gradient实现按钮或图标的颜色渐变显示效果。

{ background:linear-gradient(to right,#ff9602,#ff5407);}

说明:参数一指的是渐变的方向,是从左往右还是由右往左,或者其他方向(具体查阅资料);参数二和参数三指的是渐变的颜色,设置之后按钮或者图标的背景会根据设置的两个颜色产生由参数一设定的方向开始的渐变效果。

当然如果是字体图标需要产生渐变效果,则设置的渐变对象应该是文字,这里以谷歌浏览器为例说明:
{ background: -webkit-linear-gradient(left,#ffbe62,#fdd887); -webkit-background-clip: text; -webkit-text-fill-color: transparent;}
<!-- 或者 -->{ background-image: -webkit-linear-gradient(left,#ffbe62,#fdd887); -webkit-background-clip: text; -webkit-text-fill-color: transparent;}

说明:因为需要设置渐变效果的对象是字体图标,所以使用-webkit-background-clip限定背景的绘制区域为text。


4、使用deep、important关键字处理第三方框架的样式

        在项目开发过程中如果使用了第三方框架,需要覆盖该框架的样式时可以使用/deep/的方式加到选择器的前面,这样避免有时候给定的选择器选择无效的情况。

/deep/.van-button { background:#ff0;}
对于一些需要覆盖的样式效果可以使用important关键字,但是不推荐经常使用,会造成后期维护困难。
{ color: #f7f7f7 !important;}


5、弹性布局flex

        常用弹性布局可以为盒装模型提供最大的灵活性。采用Flex布局的元素,称为Flex容器(flex container),简称“容器”。它的所有子元素自动成为容器成员,成为flex项目(flex item),简称“项目”

容器有六个属性可以设置:

flex-direction
flex-wrap
flex-flow
justify-content
align-items
align-content


flex-direction:属性决定主轴的方向(即项目的排列方向),是自左向右(row,默认)、自右向左(row-reverse)、自上而下(column)还是自下而上(column-reverse)。

flex-wrap:默认情况下item都排在一条轴线上,flex-wrap属性定义,如果一条轴线排不下,如何换行:不换行(nowrap,默认)、换行(第一行在上方,wrap)或者换行(第一行在下方,wrap-reverse)。

flex-flow:属性是flex-direction属性和flex-wrap属性的简写形式,默认row nowrap。

justify-content:属性定义了项目在主轴上的对齐方式。它可能取5个值,具体对齐方式与主轴的方向有关。下面假设主轴为从左到右。

 

flex-start:左对齐,默认值
flex-end:右对齐
center:居中
space-between:两端对齐,项目之间的间隔都相等

space-around:每个项目两侧的间隔相等,所以,项目之间的间隔比项目与边框的间隔大一倍。


align-items:属性定义项目在交叉轴上如何对齐。它可能取5个值。具体的对齐方式与交叉轴的方向有关,下面假设交叉轴从上到下。

 
flex-start:交叉轴的起点对齐
flex-end:交叉轴的终点对齐
center:交叉轴的中点对齐
baseline:项目的第一行文字的基线对齐。

stretch:默认值,如果项目未设置高度或设为auto,将占满整个容器的高度。


align-content:属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

该属性可能取6个值:

flex-start:与交叉轴的起点对齐。
flex-end:与交叉轴的终点对齐。
center:与交叉轴的中点对齐。
space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
stretch:默认值,轴线占满整个交叉轴。

说明:flex弹性布局在前端开发中很常见,具体的说明可以查阅“Javascript小白”的博客:

https://www.cnblogs.com/dreamperson/p/9367008.html


6、less的使用

        使用less可以使样式结构更加清晰,也更利于维护。

<style lang="less" scoped>.class-name { // ...}</style>


7、元素位置的调整

        一般可以使用方位属性和transform结合调整元素的位置。

{ left:50%; bottom:10px; transform: translate(-50%,0);}


8、两个属性box-shadow和background

        box-shadow和background两个属性也是在前端开发中经常使用。

box-shadow属性:用于设置阴影效果。

{ box-shadow: 10px 10px 5px 5px #888888 inset;}

说明:属性值依次是——阴影水平位置、阴影垂直位置、模糊半径、阴影大小、阴影颜色和内/外侧阴影。

background属性:是一个简写属性,background 简写属性在一个声明中设置所有的背景属性,通常建议使用这个属性,而不是分别使用单个属性,因为这个属性在较老的浏览器中能够得到更好的支持,而且需要键入的字母也更少。

可以设置的属性分别是:

background-color
background-position
background-size
background-repeat
background-origin
background-clip
background-attachment
background-image


设置的语法顺序:

{ background:background-color background-image background-position/background-size background-repeat background-origin background-clip background-attachment initial|inherit;}

缺少一个或几个属性是可以允许的,例如:

{ background:#ff0 url('test.png');}




OK,这就是本次的文章的全部内容了,如有谬误,欢迎指正。

如果觉得本篇文章对你有帮助,欢迎点赞、打赏和收藏,您的支持和持续关注是“飞策科技”不断更新的动力!

也欢迎您把订阅号分享给身边的朋友。