关于css:实现圆角边框渐变

第一开始用border-image实现边框突变色彩,然而border-radius就生效了。前面在网上找了一个比拟好的办法来解决这个问题。 首先先写一个父元素,实现背景色彩突变 .switch-button{ width: 168rpx; height: 50rpx; background-image: linear-gradient(to left, #F14D4D, #CC0D0D); border-radius: 25rpx; box-sizing: border-box; padding: 6rpx;}留神要是设置padding,大小和你的边框是一样大的。而后就能够用子元素遮住实现圆角渐变色边框了。 .button-content{ width: 100%; height: 100%; border-radius: 25rpx; background-color: #313131;}整体html <view class="switch-button"> <view class="button-content"></view></view>链接https://blog.csdn.net/GongWei...

February 11, 2022 · 1 min · jiezi

关于css:TreeGrid插件

咱们能够用TreeGrid插件来实现菜单目录以树结构来出现具体代码如下: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <!--引入css--> <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css"> <link rel="stylesheet" href="bower_components/treegrid/jquery.treegrid.css"/></head><body><div> <table id="menu-table"></table></div><!--引入js--><!-- jQuery 3 --><script src="bower_components/jquery/dist/jquery.min.js"></script><!-- Bootstrap 3.3.7 --><script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script><script src="bower_components/treegrid/jquery.treegrid.extension.js"></script><script src="bower_components/treegrid/jquery.treegrid.min.js"></script><script src="bower_components/treegrid/tree.table.js"></script><script> var columns = [ { title : '菜单ID', field : 'id', align : 'center', valign : 'middle', width : '80px' }, { title : '菜单名称', field : 'name', align : 'center', valign : 'middle', width : '130px' }, { title : '上级菜单', field : 'parentName', align : 'center', valign : 'middle', sortable : true, width : '100px' }];//格局来自官网demos -->treeGrid(jquery扩大的一个网格树插件) let treeTable=new TreeTable("menu-table","/menu/doFindObjects",columns); treeTable.init();//底层基于url向服务端发动异步申请</script></body></html>须要留神引入的js程序不能颠倒,因为treegrid,bootstrap都是依靠于jquery ...

February 9, 2022 · 1 min · jiezi

关于css:前端面试每日-31-第1020天

明天的知识点 (2022.01.30) —— 第1020天 (我也要出题)[css] 请说说css中的:read-write选择器的作用是什么?《论语》,曾子曰:“吾日三省吾身”(我每天屡次检查本人)。前端面试每日3+1题,以面试题来驱动学习,每天提高一点!让致力成为一种习惯,让奋斗成为一种享受!置信 保持 的力量!!! 欢送在 Issues 和敌人们一起探讨学习! 我的项目地址:前端面试每日3+1【举荐】欢送跟 jsliang 一起折腾前端,零碎整顿前端常识,目前正在折腾 LeetCode,打算买通算法与数据结构的任督二脉。GitHub 地址 微信公众号欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个Star, 同时欢送微信扫码关注 前端剑解 公众号,并退出 “前端学习每日3+1” 微信群互相交换(点击公众号的菜单:交换)。 学习不打烊,充电加油只为遇到更好的本人,365天无节假日,每天早上5点纯手工公布面试题(死磕本人,愉悦大家)。心愿大家在这虚夸的前端圈里,放弃沉着,保持每天花20分钟来学习与思考。在这变幻无穷,类库层出不穷的前端,倡议大家不要等到找工作时,才狂刷题,提倡每日学习!(不忘初心,html、css、javascript才是基石!)欢送大家到Issues交换,激励PR,感激Star,大家有啥好的倡议能够加我微信一起交换探讨! 心愿大家每日去学习与思考,这才达到来这里的目标!!!(不要为了谁而来,要为本人而来!)交换探讨欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个[Star]

January 31, 2022 · 1 min · jiezi

关于css:回顾明道云的2021文末互动有奖

January 28, 2022 · 0 min · jiezi

关于css:Flex布局

Flex的含意Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。 .box { display; flex;}.box { display; inline-flex;}PS: 应用Flex布局,所有子元素的float,clear,vertical-alig你这些属性就会生效 Flex的属性介绍1.flex-direction:该属性决定主轴的方向,即排列形式,默认row。 .box { flex-direction: row | row-reverse | column | column-reverse; }2.flex-wrap:该属性决定子元素会不会换行,因为默认状况是在一条线上的,默认不换行,nowrap // nowrap:不换行// wrap:换行,第一行在下面// wrap-reverse:换行第一行在上面.box { flex-wrap: nowrap | wrap | wrap-reverse; }3.flex-flow:该属性flex-direction属性和flex-wrap属性的简写模式,默认值为row nowrap。 .box { flex-flow: row nowrap; }4.justify-content:改属性定义了子元素在主轴上的对齐形式,默认flex-start // flex-start: 左对齐// flex-end:右对齐// center:居中// space-between:两端对齐,两头的子元素均匀分布,子元素之间的间距都雷同。// space-around:子元素均匀分布在盒子中,然而子元素两侧都是有间距的,且间距雷同,所以,成果是,盒子两端间距是子元素和子元素之间的间距的一半。.box { justify-content: flex-start | flex-end | center | space-between | space-around:; }5.align-items:该属性是定义子元素在穿插轴上如何对齐,默认stretch // flex-start:穿插轴的终点对齐。// flex-end:穿插轴的起点对齐。// center:穿插轴的中点对齐。// baseline:子元素的第一行文字的基线对齐。// stretch:如果子元素未设置高度或设为auto,将占满整个容器的高度。.box { align-items: flex-start | flex-end | center | baseline | stretch; }6.align-content:改属性是定义多行的对齐形式,如果只有一行,这个属性不起作用,默认stretch ...

January 28, 2022 · 1 min · jiezi

关于css:flex布局

前言:平时个别是设置盒子居中对齐的时候才思考到flex。然而flex用途必定不止这点,本文是具体理解flex之后的一些思考。 1. 巧用flex的directiondirection是容器属性,能够设置容器的轴线方向。当想实现反转我的项目内容的时候,能够用row-reverse或column-reverse设置反方向。html <div class="flex-box"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div></div>css .flex-box { width: 200px; height: 200px; display: flex; flex-flow: row-reverse nowrap; justify-content: flex-end; background-color: skyblue; }.flex-box div { border: indigo 1px solid; } 留神: 只能反转以后行或列的数据容器默认是左对齐flex-start,反转数据之后依然想左对齐的话须要设置对齐形式为flex-end。 2. 我的项目初始大小不指定我的项目盒子大小的话:如果为row轴方向排列---每个我的项目程度方向上的宽度是我的项目理论宽度,垂直方向上的高度为容器高度。如果为column轴排列---每个我的项目程度方向上的宽度是容器宽度,垂直方向上的高度为我的项目理论高度。设置反方向轴线上的排列形式就不会应用容器高度了。

January 22, 2022 · 1 min · jiezi

关于css:解析position-sticky

是什么粘性定位position sticky元素采纳失常的文档流布局(static),当其边框(border矩形)绝对于最近的滚动先人元素的内边框(即content矩形)的小于指定阈值时,则position sticky元素绝对于该最近的滚动先人元素固定地位。 怎么用要实现粘性定位除了指定position: sticky;外还需指定阈值,即程度滚动必须指定left/right,垂直滚动必须指定top/bottom。如: .some-component{ position: sticky; top: 0px;}粘性定位position sticky可用于实现一些“吸顶”成果 进阶阈值怎么计算的比方: .sticky-btn{ position: sticky; top: 10px;}则示意.sticky-btn元素的上border矩形边框间隔滚动容器的上内边框(即content矩形)边的间隔小于10px时,则元素固定地位。 多个sticky元素在一个滚动容器里能够存在多个无效的sticky元素,sticky元素之间的行为相互独立;sticky元素属于定位元素,当多个sticky元素产生重叠时遵循定位元素的重叠准则。其余生效的sticky元素行为同relative定位。生效的sticky元素首次应用position: sticky;总是发现没有达到成果,常见的起因有: 程度滚动时查看是否指定left/right;垂直滚动是查看是否指定top/bottom;sticky元素的某个父元素(或者先人元素)指定了overflow/overflow-x/overflow-y属性,且取值是hidden/scroll/auto;sticky元素的父元素(不是先人元素)在滚动元素视口里还不可见。能够看看这个Demo兼容性 Can I Use CSS position: sticky As of 2020, 95% of browsers have some level of support for position: stickyOlder versions of Safari will require the -webkit vendor-prefix个别这样写: position: -webkit-sticky;position: sticky;降级计划(polyfill)如果非得要兼容各个浏览器,则得应用JS实现了。好在曾经有很多优良的库了: react-stickyStickybits参考整顿自GitHub笔记: 解析position: sticky;。 Buy me a coffee ☕

January 21, 2022 · 1 min · jiezi

关于css:css基础

一、根底认知 1.css又称层叠样式表2.丑化html 给html减少款式二、语法规定 1.css写到style标签中,style标签个别写到head标签里,title下2.css的标点符号是英文的3.键值对后有分号三、css属性 color 文字色彩font-size 文字大小background-color 背景色彩width:200px 标签宽度(带单位)height:100px 标签高度(带单位)四、引入形式 1.内嵌式:css写道style标签中 范畴:以后网页 应用场景:小demo2.外链式:(罕用)css写到独自的css文件中 link引入 我的项目中应用 配合js应用3.行内式:(少用)写到标签的style属性中五、根底选择器 1.标签选择器:利用标签名字抉择元素 标签名{属性名:属性值} 留神: ①不可进行差异化设置,若设置,会导致所有标签都变动 ②无论嵌套多深,都会找到对应标签(与写到哪里无关)2.类选择器 .类名{属性名:属性值} ①找到要抉择的标签,给这个标签减少class属性,属性值随笔那定义 ②在css款式中应用 ‘.+类名’ 的形式调用 ③一个标签能够有多个类名3.id选择器 #id属性值{属性名:属性值} ①所有标签都有id属性 ②id属性在页面中惟一且不可反复 ③一个标签只有一个id属性值4.通配符选择器 ✳{属性名:属性值} 抉择页面中所有的标签,设置对立款式六、字体和文本的款式 1.字体款式 ①字体大小 font-size 取值:数字+px 谷歌默认16px ②字体粗细 font-weight 取值:100-900(整数,数字越大,越粗) 罕用 400 700 ③字体款式 font-style italic歪斜 normal失常 ④字体复合写法 font:style weight size family 程序要求:swsf 省略要求:只能省略前两个,如省略,相当于设置了默认值 留神点:如需共事色织独自和连写模式 要么把独自的款式写到连写下边 要么把独自的款式写到连写里边2.文字款式 依据字体大小设置 ①文字缩进(首行缩进) em单位(绝对单位) 绝对于文字大小来进行计算 ②文本程度对齐形式(只能在独占一行的元素增加) 属性名:text-align (left,center,right) 留神:如果须要让文本程度居中,text-align属性给文本所在标签的父元素设置3.文本润饰 text-decoration(鼠标悬停) 装璜线:decoration 清空下划线:text-decoration:none 上划线:text-decoration:overline 中横线:text-decoration:line-through4.程度居中办法 text-align:center 可让文本 span标签 a标签 input标签 img标签(放在独占一行的元素里) 留神:须要给父元素设置 margin:0 auto; 让大盒子居中,间接给以后元素自身设置 须要设置盒子自身的宽度 个别针对于固定宽度的盒子,如大盒子自身没有设置宽度,此时会默认占满父元素的宽度5.行高 line-height 作用:管制里手女 取值:数字+px 利用: ①让单行文本垂直居中可设置,文字父元素行高 ②网页精准布局时,会设置行高line-height:1,可勾销高低间距七、Chrome调试工具 批改和调试款式(定位谬误点) F12 ...

January 18, 2022 · 1 min · jiezi

关于css:CSS揭秘过渡和动画实用技巧弹跳闪烁打字动画

目录:1、弹跳动画2、闪动成果3、打字动画4、状态平滑的动画1、缓动成果 问题形容:回弹成果是指当一个过渡达到最终值时,往回倒一点,而后再次回到最终值,如此往返一次或屡次,并逐步收敛,最终稳固在最终值,目前有很多JS类库是内置回弹成果的,然而用纯CSS如何实现呢?最根本的实现依附的是CSS动画,并设置关键帧,就能实现最简略的弹跳动画成果。 @keyframes bounce { 60%, 80%, to { transform: translateY(350px); } 70% { transform: translateY(250px); } 90% { transform: translateY(300px); }}然而这样产生的成果十分不实在,因为每次小球改变方向的时候速度是继续减速的,很不天然,这波及到动画的默认速度成果,它的速度曲线如下图所示: 初始加速度很高,动画前面的加速度反而平缓,这跟弹跳比拟平均的速度曲线有矛盾。不过咱们能够通过设置animation的属性扭转这种曲线,通过设置animation-timing-function能取得齐全不同的动画速度曲线。 animation-timing-function: ease-out;能够显著看出弹跳成果更加符合实际。 2、闪动成果 问题形容:有一种常见的用户体验设计手法,就是通过数次闪动来提醒用户界面中有某处产生了变动,或者用来凸显出以后链接的指标。因此闪动动画成果的实现是有必要的。用 CSS 动画的确能够实现各种类型的闪动成果,比方对整个元素进行闪动(通过 opacity 属性),对文字的色彩进行闪动(通过 color 属性),对边框进行闪动(通过 border-color 属性)等等。在上面的内容中,咱们将只探讨文字的闪动成果,因为这是最常见的需要。 如:我当初须要让一段文字实现闪动成果 @keyframes blink-smooth { to { color: transparent } }.highlight { animation: 1s blink-smooth 3; }这样就能根本实现了,然而有个问题,文字能够平滑的从原来的色彩淡化为通明色,然而起初却僵硬地跳回原来的色彩,且色彩的淡去和浮现有显著的减速成果,所以咱们还要进行肯定的改良。这里应用animation-direction属性管制是否应该轮流反向播放动画 animation: .5s blink-smooth 6 alternate;通过这个使隐去的动画重复播放六次,实现闪动成果,这样就是实现平滑的闪动成果了。 3、打字动画 问题形容:有些时候,咱们心愿一段文本中的字符一一浮现,模拟出一种打字的成果。这种成果用纯CSS的形式如何实现呢其实根本的原理就是让盒子的宽度用动画逐渐展示,对盒子内的文字设置不换行且暗藏超出盒子宽度的内容,从而实现文字的逐渐展示,也就是打字动画。 <h1>CSS is awesome</h1>@keyframes typing { from { width: 0; }}h1 { width: 8.1em; animation: typing 8s; white-space: nowrap; overflow: hidden;}这样就能实现上面的根本成果:最初,加上光标的成果 ...

January 17, 2022 · 1 min · jiezi

关于css:css圆角borderradius属性中斜杠怎么理解

border-radius 设置元素外边框圆角突然发现之前应用border-radius疏忽了斜杠'/'而后查阅了w3c,感觉不太好了解。w3c应用语法1-4:圆角地位,别离是top-left,top-right,bottom-right,bottom-left.顺时针。length|% :应用长度或者百分比设置值。斜杠'/'前设置程度半径,斜杠'/'后设置垂直半径。 放一张图就更明确一些。 以设置程度半径为例,对雷同的值有几种简写 //1.四个圆角值均相等border-radius:10px 10px 10px 10px; border-radius:10px; //简写//2.对角相等border-radius:10px 50px 10px 50px;border-radius:10px 50px; //简写//2.圆角2、3值相等border-radius:10px 50px 50px 20px;border-radius:10px 50px 20px; //简写省略斜杠'/'后的值,则示意同个地位的垂直半径值与程度半径值相等(应用百分比时,值相等理论长度不肯定相等)。border-radius原来能够生成十分多不同的形态。 MDN文档内调试

January 11, 2022 · 1 min · jiezi

关于css:css-经常使用的选择器包括scssless后续会继续补充

{ { }} 十分常见,越往里阐明辈份越小 div:nth-child(n) div第n个孩子 这个n是从1开始的哦相似的有 p:first-child last-child等 假如n为3这个有个须要留神的点:第三个p 和第三个span都会失效 只有是第三个并且他的父亲是div就会失效 <div> <p></p><p><span></span><span></span><span></span></p><p></p></div> 3 .想要第三个p失效然而第三个span不失效,能够应用>:nth-child(n). 代表亲儿子4 .& .a { &.b {}} 这个相似 .a.b{} 是同级的哦 作用在一个元素上的 .a .b{}两头有空格这个b是a的子元素。 4.常见的div 元素选择器 #hhh .hhh id选择器不罕用哦 开发中类抉择器用的很多贴一个写的很好的总结,(如有侵权能够通知我我删除哈)独特学习 嘿嘿嘿https://blog.csdn.net/b954960...

January 10, 2022 · 1 min · jiezi

关于css:在线CSS代码压缩美化工具

在线CSS代码压缩丑化工具在线CSS代码压缩丑化工具 在线CSS代码压缩、格式化工具。能够删除正文 在线CSS代码压缩、格式化工具。能够删除正文 https://tooltt.com/css/

January 10, 2022 · 1 min · jiezi

关于css:css设置inputtextarea的光标

1. 不显示光标(办法1)1.1 代码 input,textarea { color: transparent; text-shadow: 0 0 0 red;}1.2 text-shadow 属性阐明 text-shadow: h-shadow v-shadow blur color; 1.3 示例 <!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> body { padding: 50px; } input, textarea { color: transparent; text-shadow: 0 0 0 red; } </style> </head> <body> <input type="text" id="input" value="" /> <br /> <br /> <textarea rows="3" cols="50"></textarea> </body></html> 2. 不显示光标(办法2)2.1 代码 caret-color: transparent;2.2 兼容性 2.3 示例图片 3. 不暗藏光标,扭转光标色彩3.1 代码输入框文本为 #333 ,光标为 red。 input { color: #333; caret-color: red;}@supports (-webkit-mask: none) and (not (cater-color: red)) { input { color: red; } input::first-line { color: #333; }}3.2 示例图片 ...

January 10, 2022 · 1 min · jiezi

关于css:CSS揭密背景和边框特殊技巧

目录:1、半透明边框无奈显示问题2、多重边框border的实现3、背景的定位技巧4、条纹背景的实现1、半透明边框无奈显示问题 问题形容:当咱们给一个背景为红色的盒子设置半透明边框的时候,会发现边框无奈失常的显示,如下图所示,两头的盒子曾经设置了边框。background-color: white;border: 10px solid hsla(0, 0%, 100%, .5); 剖析:这个问题产生的起因很简略,是因为默认的状况下,设置的背景会延长展到border的下方去,咱们能够设置一个虚点的边框来试验一下。能够分明的看到红色的背景间接延长到dot border的下方,这就导致了咱们下面半透明的border间接被下方红色的背景透上来,无奈显示。 background-color: white;border: 10px dotted blue; 解决方案:通过background-clip属性能够解决这个问题,该值默认为border-box,就是背景会拓展到border下方,咱们只须要设置background-clip:padding-box就能够让padding宰割背景,不影响border的成果,最终解决问题。background-clip: padding-box; 2、多重边框border的实现 问题形容:有这样的需要,须要盒子padding的外边有不止一层的border,而border自身不能设置多层,屡次设置只会笼罩之前的。border: 10px dotted blue;border: 10px solid green; 剖析:有两种计划能够代替实现多重border的成果:形式一:应用border-shadow box-shadow: h-shadow v-shadow blur spread color inset;border-shadow如果不设置偏移和暗影,就能够看作border成果,且shadow是能够重叠定义的,实现如下。 box-shadow: 0px 0px 0px 5px black, 0px 0px 0px 10px yellow; 形式二:应用outlineoutline (轮廓)是绘制于元素四周的一条线,位于边框边缘的外围,可起到突出元素的作用。能够在设置border的根底上在设置一层outline实现视觉效果上的两层border,但最多也就只能两层。 outline: 5px solid green;border: 5px solid yellow; 3、背景的定位技巧 问题形容:咱们失常须要将背景图定位到盒子中的某个地位,会应用background position属性来设置偏移,但若想让偏移量始终和外边盒子的padding值保持一致,就须要在每次padding扭转时扭转对应的偏移值,有没有其余办法代替?如下所示,须要每次padding扭转,都让外部的图片定位与padding保持一致。 我么能够应用background-origin形式 background-image: linear-gradient(to right, red, blue);实现,这个属性设置背景图绝对于什么地位来定位。 background-origin: padding-box|border-box|content-box;该值默认为将其设定为padding-box,将其设定为content-box,而后设置偏移为right 0,bottom 0,就能实现背景图绝对父盒子的padding进行偏移。 4、条纹背景的实现 问题形容:如何实现类型上面的条纹背景成果?能够联合突变的成果和background-clip来实现,首先看下突变的相干材料。失常设置突变的色彩和方向能实现色彩的变换成果,如下: ...

January 9, 2022 · 1 min · jiezi

关于css:2022年推荐6个有意思的CSS-tools

PurgeCSS —— 删除无用css代码PurgeCSS能够删除 CSS 中未应用的代码。这个工具十分有用,尤其是当应用 CSS 框架时。因为大多数时候框架都带有很多咱们并不真正须要的代码。 它能够是开发工作流程的一部分。当你正在构建一个网站时,你可能会决定应用一个CSS框架,如TailwindCSS, Bootstrap, MaterializeCSS, Foundation等。但咱们只应用一小部分框架,并且将包含许多未应用的CSS款式。 这就是PurgeCSS发挥作用的中央。PurgeCSS剖析你的内容和CSS文件。而后,它将文件中应用的选择器与内容文件中的选择器进行匹配。它会从CSS中删除未应用的选择器,从而生成更小的CSS文件。 Neumorphism —— 最小类型设计能力Neumorphism设计当初很风行,很多用户喜爱它,因为它是一种最小类型的设计。 这是一个很棒的工具,它容许你设计生成软 UI CSS 代码。这对于创立 Neumorphism 设计十分有用。能够抉择色彩、编辑大小、半径、间隔等等。试一试,你会喜爱的。 CSS clip-path maker —— 营销图设计赋能这个工具基于 CSS 属性clip-path,它容许你创立简单的形态(多边形、圆形、椭圆形等)。如果你不相熟这个 CSS 属性,那没什么大不了的,因为剪辑门路制作工具就在这里。 Animista —— 可视化动画创立Animista是可用于动画的最佳 CSS 工具之一。它为你提供了一组能够在 CSS 中应用的预制动画。你能够抉择你喜爱的任何类型的动画并依据须要进行编辑。实现后,你能够为动画生成 CSS 代码并将其用于你的我的项目代码。 Shadow Brumm —— 可视化暗影制作这是一个很棒的工具,可让你应用 CSS 轻松创立凉快且平滑的暗影。你只需定义一些暗影选项,它就会主动为你生成代码。 如果你想在短时间内创立暗影,请应用此工具。 Get Waves —— 海浪制造机这是另一个了不起的工具,它容许你应用 CSS 为你的我的项目创立 SVG 波形。它使它变得更容易,你只需抉择选项,而后该工具就会为你的 wave 设计生成正确的 CSS 代码。 如果这是你想要的,你还能够下载你创立的 SVG 波形。 最初如果你感觉此文对你有一丁点帮忙,点个赞。或者能够退出我的开发交换群:1025263163互相学习,咱们会有业余的技术答疑解惑 如果你感觉这篇文章对你有点用的话,麻烦请给咱们的开源我的项目点点star: https://gitee.com/ZhongBangKeJi不胜感激 ! PHP学习手册:https://doc.crmeb.com技术交换论坛:https://q.crmeb.com

January 8, 2022 · 1 min · jiezi

关于css:神奇的滤镜巧妙实现内凹的平滑圆角

背景某日,群友们在群里抛出这样一个问题,如何应用 CSS 实现如下的布局: 在 CSS 世界中,如果只是下述这种成果,还是非常容易实现的: 一旦波及到圆角或者波浪成果,难度就会晋升很多。 实现这种间断平滑的曲线其实是比拟麻烦的,当然,也不是齐全没有方法。本文,就会带大家看看,应用 CSS 实现上述内凹平滑圆角成果的一些可能的形式。 利用圆的连接实现第一种办法比拟笨。咱们能够应用多个圆的连接实现。 首先,咱们会实现一个外部挖出一个矩形的矩形: <div></div>外围 CSS 代码如下: div { height: 200px; background: linear-gradient(90deg, #9c27b0, #9c27b0 110px, transparent 110px, transparent 190px, #9c27b0 190px), linear-gradient(90deg, #9c27b0, #9c27b0); background-size: 100% 20px, 100% 100%; background-position: 0 0, 0 20px; background-repeat: no-repeat;}失去这样一个图形(实现的形式有很多,这里我利用的是突变): 接下来,就是通过伪元素去叠加三个圆,大略是这样: div { ... &::before { position: absolute; content: ""; width: 40px; height: 40px; border-radius: 50%; background: #000; left: 90px; box-shadow: 40px 0 0 #000, 80px 0 0 #000; }}略微,批改一下三个圆的色彩,咱们就能够失去如下的成果: ...

January 7, 2022 · 2 min · jiezi

关于css:FEUX常见CSS边界情况防御处理

遵循这种心态至多会缩小您可能遇到的问题。 对于这个组件,题目能够是一个词,也能够是多个词。为防止题目卡在右侧的图标上,最好增加margin-right: 1rem,以防题目变长。 如果一个按钮与另一个按钮相邻,则为第二个按钮增加一个右边距,以防万一 .button + .button { margin-left: 1rem;}第一个解决方案是应用文本截断 & max-width。第二个只应用max-width,但如果标签有很长的文本,它可能会失败。 图像默认背景 img { background-color: #525252;}object-fit: cover防止头像拉伸 flex-wrap以防止元素溢出 文本截断+左边距 overscroll-behavior-y: contain;防止父元素一起滚动 css变量设置兜底值,如calc(100% - var(--actions-width, 70px)) 应用min-height代替height 同理替换width为min-width. 不要忘记background-repeat 当题目有一个很长的词时,它不会换行。即便咱们应用overflow-wrap: break-word,它也不起作用。要更改该默认行为,咱们须要min-width将 flex 项的 设置为0。那是因为min-width默认值是auto,就会产生溢出。同样的事件实用于列 flex 包装器,咱们应用min-height: 0。 .card { display: flex;}.card__title { overflow-wrap: break-word; min-width: 0;}离开选择器下方有效 /* Don't do this, please */input::-webkit-input-placeholder,input:-moz-placeholder { color: #222;}正确写法 input::-webkit-input-placeholder { color: #222;}input:-moz-placeholder { color: #222;}一些渐进加强: gap@mediascrollbar-gutterminmax()sticky参考资料Defensive CSSThe Just in Case Mindset in CSS

January 2, 2022 · 1 min · jiezi

关于css:冷门又好用的-CSS-特性

1. 多列布局(Multi-column Layout)MDN - CSS Multi-column Layout Can I Use - CSS3 Multi-column Layout CSS 提供了对多列布局的反对。反对设置布局中的列数 (column-count)、内容应如何列之间的流动规定、列之间的间距 (column-gap) 以及列分割线(column-rule)的款式。 比方能够实现上面的瀑布流成果: Codepen demo 次要款式: .masonry { width: 1440px; margin: 20px auto; columns: 4; column-gap: 30px; .item { width: 100%; break-inside: avoid; margin-bottom: 30px; img { width: 100%; } }}2. 书写模式(Writing Modes)MDN - CSS Writing Modes Can I Use - CSS writing-mode property Writing Modes 定义了各种国内书写模式,例如从左到右(拉丁语、印度语)、从右到左(希伯来语、阿拉伯语)、双向(混合从左到右和从右到左的语言)和垂直(汉语)。 上面是三种书写形式的展现: Codepen demo ...

December 31, 2021 · 3 min · jiezi

关于css:CSS-垂直居中的方式

垂直居中本人整顿一下收集到的垂直居中的形式: table自带居中性能 <table> <tr> <td> <div>表格垂直居中</div> </td> </tr></table><div class="like-table"> <div>假的表格垂直居中</div></div>.like-table{ display:table-cell;}设定行高 实用于「单行」的「行内元素」 ( inline、inline-block ),将line-height设成和高度一样的数值,则内容的行内元素就会被垂直置中。设定伪类元素应用伪元素的形式。在此之前,先解释一下 vertical-align 用来指定行内元素(inline)或表格单元格(table-cell)元素的垂直对齐形式。这个属性是加在容器外部较高的元素上, 使其基线绝对放弃在较高元素两头,因而,如果有一个方块变成了高度100%,那么其余的方块就会真正的垂直居中。所以应用伪类的形式, <div class="parent"> <div class="child"> 一串文字 </div></div>.parent{ text-align: center;}.child{ border: 3px solid black; display: inline-block; width: 300px; vertical-align: middle;}.parent:before{ content:''; outline: 3px solid red; display: inline-block; height: 100%; vertical-align: middle;}.parent:after{ content:''; outline: 3px solid red; display: inline-block; height: 100%; vertical-align: middle;}margin: auto <div class="parent"> <div class="child"> 一串文字 </div></div>.parent{ height: 600px; position: relative;}.child{ position: absolute; width: 300px; height: 200px; margin: auto; top: 0; bottom: 0; left: 0; right: 0;}margin-top:-50% ...

December 30, 2021 · 1 min · jiezi

关于css:与-Taro-团队核心开发兼运营的一次-CSS-布局讨论的记录

明天下班在很认真的寻访候选人,查看招聘网站上的一些人选的信息时,忽然收到 Taro 团队的外围开发兼经营(我说他是开发,他说本人是经营)同学的微信音讯,如下图: 好多人都是长时间没聊了,当初沟通形式多了,反而大家平时沟通却少了。本来我认为他是来找我闲聊几句,顺便会介绍几个敌人给我,让我帮忙举荐岗位呢。我这个小猎头哦,好南啊…… 回归正题,过后他问了这个之后,我心中有几个小纳闷还不分明。毕竟要实现一个需要,至多要理解这个需要的实质是什么,同时会呈现的一些问题有哪些。 所以,看到他的问题,把本人所了解的一个最终成果形容一下,大略就是这样,容器盒子会被撑开的,而当初是没有撑开,如图: 看到需要,脑子想也没想就冒出了一个“flex 不能够吗”。预先想想,这真的是脑热反应,事实前面也证实了这样的反馈往往有时候还是会有问题的。 需要点大略理解了,那么在页面中,还是有一些不可控的因素的,比方内容减少之后会怎么样呢,就像这样: 元素内容过多,撑开了盒子之后,绝对应的就会毁坏了宽度对齐形式。 理解需要,对于可能呈现的问题也明确了,接下来就是入手实操了。但,我当初是猎头,不是码农,不应该在上班时间敲代码。可是,这个问题让我心好痒,于是摸个鱼,偷个懒,疾速依照本人的 flex 布局构想实操了一把。 后果,就是后面看到的问题状况。先是外层 flex-direction: row; 而后再外面是 flex-direction: column;,后果 column 的时候,咱们设置了 height 才会联合 flex-wrap: wrap; 进行换行的,而且最终多个换行之后,会超出父级元素的范畴,但不会撑开父级元素。 对,就是后面他的问题。 于是我想到了应用多列布局的形式,尝试了一下,嗯,确实是可行的。但又有一个问题来了,应用 -wekbit-column-count: 2; 是能满足 2 列的时候,那么当外面的子元素有三列的时候怎么办呢?难道用 JS 去计算?显示不合理啊。 嗯,好吧,确实临时没有好的想法。 不过,没多久,他发了一条音讯给我,说搞定了,丢了一个 url 地址给我。关上一看,啊呀,我怎么就没想到 writing-mode 这个属性呢,后面整 flex 的时候还想到了 direction,后果把 writing-mode 给忘了。 早晨联合那个 demo,简化了一下,顺带记录一下。对于 writing-mode 就不扩大开来讲了,MDN 上都有,次要就是管制文本的书写方向。 <div class="demo"> <div class="box"> <div class="list" id="list"> <div class="item">item_01</div> <div class="item">item_02</div> <div class="item">item_03</div> <div class="item">item_04</div> <div class="item">item_05</div> <div class="item">item_06</div> <div class="item">item_07</div> <div class="item">item_08</div> <div class="item">item_09</div> </div> </div> <div class="box">002</div> <div class="box">003</div></div>.box { display: inline-block; vertical-align: top; min-width: 200px; height: 130px; margin: 10px; padding: 15px 20px; border: 1px solid #bbb;}.list { display: inline-block; writing-mode: vertical-lr;}.item { display: inline-block; margin: 5px 10px 10px; writing-mode: horizontal-tb; background-color: rgba(255, 0, 0, .5);}再来一个最终成果看看吧。 ...

December 30, 2021 · 1 min · jiezi

关于css:用CSS-Houdini实现一个Material风格的按钮

本文首发于掘金,未经许可严禁转载一、一个简略案例理解CSS Paint例如,咱们心愿模仿实现一个谷歌material格调的波纹按钮。如下这样: 残缺CSS代码及JS代码如下: .ripple { width: 100px; height: 50px; display: flex; justify-content: center; align-items: center; color: #fff; border: none; font-size: 16px; border-radius: 6px; background-color: rgb(64 179 255); --ripple-x: 0; --ripple-y: 0; --animation-tick: 0; } /* 点击后减少的动画成果 */ .ripple.animating { background-image: paint(ripple); }HTML 代码如下: <button class="ripple"> Click me! </button> <script> CSS.paintWorklet.addModule('ripple.js') </script>绘制图形JS须要以模块引入,CSS.paintWorklet.addModule 能让 web 引入 ripple.js 这个脚本,并另外开拓线程执行。它不会影响主线程,这是 worklet 的重要“卖点”! ripple.js代码如下: registerPaint('ripple', class { paint(ctx, geom, properties) { // 像写canvas一样绘制动画 }});以上就是 CSS Paint API 大略的应用形式,先总结下: ...

December 29, 2021 · 2 min · jiezi

关于css:CSS-BFC是什么

BFC块格式化上下文(Block Formatting Context,BFC)BFC是什么其实很难去讲清楚。就如同,你晓得桌子是什么,然而你不好用语言形容,然而你看到了它,却能够认出来他是桌子一样。 那么咱们只须要记住什么时候会 创立块格式化上下文 下面是MDN的说法,然而其实面试中不须要说这么多状况,毕竟这个也就是在面试中会应用到。那么咱们就记住一部分就好了。 根元素(<html>)浮动元素(元素的 float 不是 none)相对定位元素(元素的 position 为 absolute 或 fixed)行内块元素(元素的 display 为 inline-block)overflow 计算值(Computed)不为 visible 的块元素display 值为 flow-root 的元素 (兼容性不太好)弹性元素(display 为 flex 或 inline-flex 元素的间接子元素)网格元素(display 为 grid 或 inline-grid 元素的间接子元素)块格式化上下文的能够革除浮动,能够将div中的浮动元素全副包裹起来。咱们平时会应用 .container::after{ content:''; display:block; clear:both;}这种形式来革除浮动。那就是因为发明BFC来革除浮动会应用一些副作用的css display:flow-root这个属性的兼容性又不太好,所以BFC的探讨大多数都是存在于面试当中。

December 28, 2021 · 1 min · jiezi

关于css:css-盒模型

CSS 盒模型在 CSS 中,咱们能够通过: box-sizing: conent-box; 将盒子设置为规范模型(盒子默认为规范模型)box-sizing: border-box; 将盒子设置为 IE 模型(也叫做怪异盒子)话不多说间接上图 .container{ width:200px; border:1px solid red; padding:10px; margin:20px;}如果box-sizing: conent-box;那么写的 width:200px 是content,就是图中的蓝色区域。 如果box-sizing: border-box;如下图 width 的200px 就是 content + padding + border border-box 更加好用。

December 28, 2021 · 1 min · jiezi

关于css:CSS-Houdini-Properties-Values-and-the-Paint-API

本文首发于掘金,未经许可严禁转载前言最近钻研了下 Houdini,它是 CSS 畛域的一个重大改革,它的终极目标是实现 CSS 属性的齐全兼容,其中最受关注的个性之一就是它能正确地 polyfill CSS!这么说比拟形象,它到底是做什么的呢,如何应用呢,本文来解说一二。 基本概念Houdini 是一组底层 api,它公开了 CSS 引擎的局部内容,使开发人员可能通过 hook 到浏览器渲染引擎的款式和布局过程来扩大 CSS。它能够让开发者间接拜访 CSS 对象模型(CSSOM) ,使开发者可能编写浏览器能够解析为 CSS 的代码,从而创立新的 CSS 个性,而无需期待这些个性在浏览器中自行实现。 此外,它还能用于发明一些自定义的,带有类型检查和默认值的 CSS 属性。 Houdini API 介绍一、CSS property 和值 APICSS 其实曾经有自定义属性了,这能解锁太多新玩法。而 CSS Properties and Values API 的呈现进一步推动自定义属性,还容许自定义属性增加不同的类型,容许属性类型查看、设置默认值以及定义属性是否能够继承值,大大增加自定义属性能力。 这个 API 最大卖点是开发者能够在自定义属性上做动画,这是仅凭借当初技术是做不到的。 先来看一个案例,CSS 变量可能很多人都有应用过,它之所以神奇,是因为它是动静的。但它的弱点之一是无奈转换,如果你尝试为变量设置动画,它只会从一个属性翻转到另一个属性,之间没有过渡成果。 Codepen Demo 这是因为 CSS 变了没有任何意义,它没有任何类型,因而浏览器不晓得特定变量是否是色彩、百分比、数字等。 CSS Houdini 提供了为变量调配类型的能力。如果你为变量调配了谬误类型的值,浏览器将疏忽它并抉择默认值。 CSS.registerProperty({ name: '--start', syntax: '', inherits: true, initialValue: 'purple'})CSS Houdini's Properties 和 Values API 容许咱们为 CSS 变量指定类型。应用强类型的 CSS 变量,它最终能够被转换。最风行的用例之一是动画突变。 ...

December 28, 2021 · 2 min · jiezi

关于css:CSS-grid网格布局例子

简介CSS 网格布局(Grid Layout) 是CSS中最弱小的布局零碎。flexbox 是一维零碎,Grid 是二维零碎。Grid 布局远比 Flex 布局弱小。 具体学习参考阮一峰的 CSS Grid 网格布局教程以及饥人谷若愚的 CSS 网格布局学习指南本文做一些布局记录,不便本人前面回顾。 十二网格散布.container { display: grid; grid-gap: 10px 10px; grid-template-columns: repeat(12,1fr); background-color: #2196F3; padding: 10px;} 容器大小不固定,外部元素固定.container { display: grid; grid-gap: 10px 10px; grid-template-columns: repeat(auto-fill,100px); background-color: #2196F3; padding: 10px;} 左右固定,两头自适应.container { display: grid; grid-gap: 10px 10px; grid-template-columns: 100px auto 50px; background-color: #2196F3; padding: 10px;} 一个item占多个网格.item-1{ grid-column-start:1; //1指的是从左到右的网格线序号 grid-column-start: span 2;//span关键字,示意"逾越",即左右边框(高低边框)之间逾越多少个网格。 grid-column-end:4; grid-row-start: 2; grid-row-end: 4;}.item-1 { grid-column: 1 / 3;//grid-column属性是grid-column-start和grid-column-end的合并简写模式 grid-row: 1 / 2;}/* 等同于 */.item-1 { grid-column-start: 1; grid-column-end: 3; grid-row-start: 1; grid-row-end: 2;}.item { grid-area: <row-start> / <column-start> / <row-end> / <column-end>;}.item-1 { grid-area: 1 / 1 / 3 / 3;}须要留神的是container里没有进行网格划分的是没有网格线的。例如:下面 grid-row-start/end 属性占多排是不会失效的。 ...

December 28, 2021 · 1 min · jiezi

关于css:css3-重点-flex布局

flex 布局display: flex;/* 留神,设为 Flex 布局当前,子元素的float、clear和vertical-align属性将生效。 */

December 28, 2021 · 1 min · jiezi

关于css:css文本显示省略号

应用css使文本显示省略号<div> 你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好 你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好 你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好 你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好 哈哈哈哈哈</div>单行文本: div { white-space:nowrap; text-overflow:ellipsis; overflow:hidden;}多行文本:IE不反对 (如果强制要求兼容IE倡议到职。。。) div{ display: -webkit-box; overflow:hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical;}

December 24, 2021 · 1 min · jiezi

关于css:css实现文字左右两端对齐

做表单想要实现如下成果。 span{ border:1px solid red; width:10em; display:inline-block; text-align:justify; //须要换行能力有成果,那么咱们减少伪类,来实现换行。 height:19px;//垂直居中 line-height:19px;//垂直居中 overflow:hidden;// 让伪类不要显示进去 } span::after{ content:''; width:100%; display:inline-block; } <span>姓名</span><br> <span>联系地址</span><br> <span>社会对立信用代码</span>

December 24, 2021 · 1 min · jiezi

关于css:一次就能看懂的Tailwind-CSS介绍

本文面向从未应用过 Taliwind CSS 的初学者。将通过搭建 Tailwind CSS 的环境来解说根本设置和自定义办法,以此来理解Taliwind CSS这一个日益风行的 CSS 框架。 以后Taliwind CSS的应用状况是,用户数量在减少,新性能也在陆续增加。以后最新版本为 v3.0。本文档中形容的一些内容在 v3.0 中也能够通过更简略的形式进行设置。然而,Utilize Class 的基础知识没有扭转,因而提供了学习基础知识的信息。目录1 什么是 Tailwind CSS? -- 1.1 什么是Utilize Class? -- 1.2 为什么抉择 Tailwind CSS?2 营造环境 -- 2.1 应用cdn的办法 -- 2.2 应用 npm 装置 Tailwind css3 如何应用 Tailwind CSS -- 3.1 显示 Hello Tailwind CSS -- 3.2 字符大小设置 -- 3.3 字符粗细设置 -- 3.4 字符色彩设置 -- 3.5 创立按钮 -- 3.6 Tailwind CSS 定制 -- 3.7 伪类设置悬停 -- 3.8 伪类设置重点 -- 3.9 过渡设置 -- 3.10 变换设置 -- 3.11 分组设置 -- 3.12 动画设置4 tailwind.confing.js 配置文件 -- 4.1 创立配置文件 -- 4.2 增加色彩 -- 4.3 减少最大宽度和间距 -- 4.4 增加字体大小 -- 4.5 如何自定义其余值5 Tailwind CSS 插件设置1、什么是 Tailwind CSS?Tailwind CSS 是一个利用专用程序类(Utilize Class,下文皆称Utilize Class)的 CSS 框架。许多人会想到 CSS 框架,有很多,例如 Bootstrap、Bulma 和 Material UI。Bootstrap 和 Bulma 等框架利用事后筹备好的组件(例如按钮、菜单和面包屑)进行设计。在 Tailwind CSS 中,没有筹备任何组件,而是应用Utilize Class来创立和设计本人的组件。 ...

December 21, 2021 · 5 min · jiezi

关于css:CSS-的未来Cascade-Layers-CSS-layer

最近在Weekly邮件推送中查阅到这样的一条信息: Chromium 团队发表他们将随 Chromium 99(预计在明年 3 月公布)一起公布CSS Cascade Layers会发现这条信息外面呈现了一个CSS的新名词CSS Cascade Layers,出于好奇以及对新常识的渴望(说得我本人都信了,哈哈),于是查阅起CSS Cascade Layers的相干材料,试图搞懂它。 前置常识at-rule规定at-rule规定, CSS Conditional Rules Module Level 3新增的规定,是一条语句,它为CSS提供了执行或如何执行的指令,常见的at-rule规定有: @import,容许用户从其余样式表导入款式规定@font-face,容许咱们援用自定义的字体@keyframes,申明一个动画@media,是条件CSS中的一种,其条件是一个媒体查问@supports,测试用户代理是否反对CSS属性/值对@viewport,用来管制挪动设施上的viewport设置Cascading and Inheritance Level级联(层叠)与继承通过多年的倒退迭代,目前已有多个版本(CSS2.2、Level3、Level4 和 Level5) 何为级联(层叠)? 层叠实质就是定义了如何合并来自多个源的属性值的算法,简略来说,CSS规定的程序很重要。当两条同级别的规定利用到一个元素的时候,写在前面的就是理论应用的规定。 h1 { color: red; }h1 { color: blue; }两条规定优先级雷同,所以程序在最初的失效,h1是color:blue'胜出',显示蓝色。 只有CSS申明,就是属性名值对,会参加层叠计算。这示意蕴含CSS申明以外实体的@规定不参加层叠计算,如蕴含描述符的@font-face,@规定(at-rule规定)是做为一个整体参加层叠计算。 css属性个别来自于哪几个源? 1、用户代理样式表:浏览器的根本的样式表,用于给所有网页设置默认款式。 2、用户样式表:网页的作者能够定义文档的款式。大多数状况下此类型样式表会定义网站的主题。 3、浏览器的用户应用自定义样式表定制应用体验。层叠(级联)算法如何过滤来自不同源的css规定? 互相抵触的申明按以下程序实用,后一种申明将笼罩前一种申明: 1、用户代理样式表中的申明(浏览器的默认款式)。 2、用户样式表中的惯例申明(用户设置的自定义款式,就如同咱们的reset.css)。 3、作者样式表中的惯例申明(开发人员设置的款式)。 4、作者样式表中的!important申明 5、用户样式表中的!important 申明过滤来自不同源的css规定后,确定同源优先级高下,决定谁“优胜” !important > 内联style > #id > .class > 标签理解级联算法有助于帮忙咱们了解浏览器是如何解决款式规定抵触,也就是浏览器决定哪个款式规定使用到元素上,更多相干css级联的理解: 何为继承? 当元素的一个继承属性没有指定值时,则取父元素的同属性的计算值 。只有文档根元素取该属性定义的默认值,相似的属性有color、font-size等 。 CSS是由Cascading Style Sheets三个词的首字母缩写,很多人将其称为层叠样式表或者级联样式表. @layerCSS Cascade Layers,也叫做CSS级联层,是Cascading and Inheritance Level5 标准中新增了一个新的 CSS 个性,对应的CSS属性写法@layer,即一个新的 @ 规定,也就是大家所说的 at-rule 规定。 ...

December 21, 2021 · 3 min · jiezi

关于css:隐藏页面元素的第三种方式

需要:暗藏页面元素如果从该需要的字面意思下手最简略的形式是什么?selector { opacity: 0; }难道不是么?简略粗犷。然而理论需要通常都会在该需要的根底上附加额定需要。比方: 暗藏页面元素并依然在页面中占有地位。暗藏页面元素并不在页面中占有地位。实现点击按钮复制页面元素内容到剪切板。前两个需要比拟常见,那这第三个需要是什么东东?和暗藏页面元素又有什么关系?常见的暗藏页面元素形式及差别visibility: hidden;display: none;差别: visibility: hidden; 能够暗藏某个元素,但暗藏的元素仍需占用与未暗藏之前一样的空间。也就是说,该元素尽管被暗藏了,但依然会影响布局。display: none; 能够暗藏某个元素,且暗藏的元素不会占用任何空间。也就是说,该元素岂但被暗藏了,而且该元素本来占用的空间也会从页面布局中隐没。暗藏页面元素的第三种形式在日常开发中常常须要去百度问题,也常常须要 ctrl + c 他人的代码。所以当初的大部分博客网站都反对代码的一键复制性能。该性能的大体思路是: 在页面中增加一个暗藏的文本区域;应用 JavaScript 获取到须要复制的文本值并赋值给上一步创立的文本域;应用 select() 选中文本域的内容;应用原生接口 document.execCommand('copy'); 进行复制即可;想要实现第一步的暗藏文本域性能,如果应用 visibility: hidden; 或者 display: none; 都能够实现根本的暗藏性能,然而无奈实现一键复制性能。 核心思想实现该性能的重点在于应用定位和 opacity 属性selector { position: absolute; top: 0; left: 0; opacity: 0; z-index: -10;}具体代码上面是具体的实现代码: /* html */<div class="parent"> <textarea id="input"></textarea>12 <div class="child" onclick="handleClick(event)" onmouseleave="handleMouseLeave(event)"> <span>Copy</span> </div></div>// javascripthandleClick = (event) => { console.log('复制胜利') var text = event.target.innerText var input = document.getElementById('input') input.value = text input.select() document.execCommand('copy') event.target.innerText = 'Success'}handleMouseLeave = (event) => { event.target.innerText = 'Copy'}//css*, html, body { padding: 0; margin: 0 auto;}.parent { position: relative; height: 200px; width: 200px; border: 1px solid #81D8D0;}.child { display: flex; justify-content: center; align-items: center; position: absolute; height: 100px; width: 100px; top: 50%; left: 50%; transform: translate(-50%, -50%); border: 1px solid #9C27B0; cursor: pointer;}#input { position: absolute; top: 0; left: 0; opacity: 0; z-index: -10;}思考为什么应用 display 和 visibility 属性无奈实现成果?为什么间接应用 opacity: 0; 也无奈实现成果?

December 15, 2021 · 1 min · jiezi

关于css:IntelliJ-IDEA-20213激活破解图文教程亲测有用适用目前最新版本

笔者发现一个能够 有限重置 IDEA 30天试用期的办法, 暴力无解,简略又稳固,再也不必放心激活码常常生效的问题了,具体步骤跟着上面的图文教程一步一步来就行,非常简单哟。 留神本教程实用于 IntelliJ IDEA 2021.1.3 以下所有版本,请释怀食用~本教程实用于 JetBrains 全系列产品,包含 Pycharm、IDEA、WebStorm、Phpstorm、Datagrip、RubyMine、CLion、AppCode 等。本教程实用 Windows/Mac/Linux 零碎,文中以 Windows 零碎为例做解说,其余零碎依照教程程序即可。前言 IDEA 目前曾经更新到最新的 2021.1.3 版本了,群里的小伙伴私聊问我,最新的 2021.1.3 版本要如何激活呢? 本人在网上收罗了各种注册码、激活码,均以失败告终,有的尽管过后胜利了,过后很快就生效了,兴许是 IDEA 最近查杀的比拟严吧~ 我太难了~ 然而,最终还是让我找到了破解办法。 大家都晓得 Jetbrains 家的产品有一个很良心的中央,会容许你试用30天(这个数字写死在代码里了)以评估是否你真的须要为它而付费。 z大的破解补丁我的项目曾经进行更新了,然而提供了另外一个办法让咱们能够应用 IDEA : 有限重置 IDEA 30天试用期的办法,再也不必为激活码、装置参数过期发愁了~ 仅以下文记录自己 IntelliJ IDEA 2021.1.3 版本的激活破解全过程,步骤十分具体哟~ PS: 切记不要无休止的始终试用,因为这并不是这个插件的本意! 第一步: 下载最新的 IDEA 2021.1.3 版本安装包咱们先从 IDEA 官网下载 IDEA 2021.1.3 版本的安装包,下载链接如下: https://www.jetbrains.com/ide... 点击下载,静心期待其下载结束即可。 第二步: 先卸载老版本的 IDEA留神,如果电脑上之前有装置老版本的 IDEA, 须要先卸载洁净,否则可能装置失败! 留神,肯定要先卸载洁净掉老版本的 IDEA。 1.笔者之前装置了老版本的 IDEA, 所以要先卸载,未装置老版本 IDEA 的小伙伴间接跳过,看前面步骤就行: 卸载胜利后,点击敞开: 卸载胜利后,双击刚刚下载好的 idea exe 格局安装包, 关上它; ...

December 14, 2021 · 1 min · jiezi

关于css:移动端适配

挪动端适配波及挪动端适配,首先要弄清楚几个概念: 1 viewport: 即设施上用于显示网页的那一块区域,也叫视口。它并不等同于浏览器的可视区域,他可能比浏览器的可视区域大,也可能小。在pc上,通常是多少的设施分辨率就显示多少别离率,此时css 1px 通常就等于物理的1像素,且因为可能通过调整浏览器窗口大小来调整浏览器的可视区域,所以在pc上能够不必那么在意viewport。 然而到了挪动设施上,这个viewport便显得尤为重要了,因为咱们无奈调整浏览器的可视区域,而它的可视区域就是屏幕尺寸大小。然而为了可能将内容全副显示进去,所以很多网站会将viewport宽度设定为980px或1024px,但这样造成设施上的浏览器呈现了横向滚动条。 同时因为对于雷同尺寸的设施,却有了不同的分辨率(高分屏等等),这导致了css 1px不再是等于1物理像素了。对于高分屏,尽管分辨率进步了,但尺寸无奈变大,所以只能在1px像素上包容更多物理像素。 2 viewpoet像素: 它实质是DIP(Device Independent Pixels),中文意思设施无关像素,是与上述所有像素都无相对逻辑关系的一个单位。其实是浏览器外部对逻辑像素进行再解决的后果,简略来了解就是调整逻辑像素的缩放来达到适应设施的一个中间层 3 设施独立像素 dip: 即与设施无关的像素,因为在当初雷同的设施尺寸曾经有了不同数量级的物理像素,而咱们应用的css px就是设施独立像素。 4 设施像素比dpr:dpr = 设施物理像素/设施独立像素 5 每英寸像素 ppi:指的是屏幕在每英寸的物理像素 6 物理像素:设施能管制显示的最小单位 咱们常说的分辨率指的就是物理像素 7 设计师给的设计图的像素px:物理像素 咱们在对不同尺寸的手机进行适配时,其实应该要留神的是,对于更大的屏幕,应该展现更多的内容,而不是更大的内容。然而很多时候,设计师并不会针对性的给出每一套设计,同时如果真要针对不同尺寸进行不同的适配,简略点的可能还好,灵活运用布局或者可能实现,然而对于简单些的则可能要通过媒体查问来实现了。这样老本上也更高。所以理论要如何实现还是看需要与条件。 适配: 在过来很多人都采纳rem的办法来实现挪动端适配,rem作为一个以根元素font-size为基准的单位,而过来经常配合flexible实现不同挪动设施端兼容自适应问题。实际上rem只是在viewport,vw,vh还未很好的实现兼容的时候的一个代替过渡品,而当初齐全能够用px + vw 来实现挪动端适配,要求高的能够媒体查问。同时,要留神设置好viewport。 如果肯定要应用等比,或是有肯定需要。则能够采纳px + vw,并以rem过渡,本质上还是px+vw。上面是具体实现的例子: 对于iPhone6来说,如果想要1rem=100px的适配: 100vw = 375 px,1vw = 3.75px,1px = 0.2666666667vw约等于0.267vw 能够得悉 当 1rem = 100px = 26.67vw 时,即可满足要求 所以再款式中设置 html { font-size: 26.67vw },此时1rem = 100px ...

December 13, 2021 · 1 min · jiezi

关于css:前端面试每日-31-第972天

明天的知识点 (2021.12.13) —— 第972天 (我也要出题)[html] 应用canvas制作一个10秒倒计时特效[css] 应用css3实现多米诺骨牌动画特效[js] websocket是基于tcp还是udp的呢?[软技能] 你对前端关注的数据指标有哪些?《论语》,曾子曰:“吾日三省吾身”(我每天屡次检查本人)。前端面试每日3+1题,以面试题来驱动学习,每天提高一点!让致力成为一种习惯,让奋斗成为一种享受!置信 保持 的力量!!! 欢送在 Issues 和敌人们一起探讨学习! 我的项目地址:前端面试每日3+1【举荐】欢送跟 jsliang 一起折腾前端,零碎整顿前端常识,目前正在折腾 LeetCode,打算买通算法与数据结构的任督二脉。GitHub 地址 微信公众号欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个Star, 同时欢送微信扫码关注 前端剑解 公众号,并退出 “前端学习每日3+1” 微信群互相交换(点击公众号的菜单:交换)。 学习不打烊,充电加油只为遇到更好的本人,365天无节假日,每天早上5点纯手工公布面试题(死磕本人,愉悦大家)。心愿大家在这虚夸的前端圈里,放弃沉着,保持每天花20分钟来学习与思考。在这变幻无穷,类库层出不穷的前端,倡议大家不要等到找工作时,才狂刷题,提倡每日学习!(不忘初心,html、css、javascript才是基石!)欢送大家到Issues交换,激励PR,感激Star,大家有啥好的倡议能够加我微信一起交换探讨! 心愿大家每日去学习与思考,这才达到来这里的目标!!!(不要为了谁而来,要为本人而来!)交换探讨欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个[Star]

December 13, 2021 · 1 min · jiezi

关于css:20-个防御性的-CSS-处理方式很细节很常见也很容易被忽略的处理方式

看到一篇来自 @shadeed9 对于 CSS 的文章内容,整体来说次要在编写 CSS 时可能须要留神到的一些带有保护性的解决形式,以防止页面布局上呈现错位等状况。CSS 属性有些还是很常见的,只不过深感在细节上的把控真的很不错。 原文很长,取局部内容简略分享,并非原文翻译,图片和代码来自原文,具体的可查看原文。原文地址:https://ishadeed.com/article/defensive-css/ 目录flexbox 内容换行间距长文本内容避免图像被拉伸或压缩锁定滚动链接CSS 变量回退应用固定宽度或高度被疏忽的 background-repeat垂直方向的媒体查问应用 justify-content: space-between图片上的文字应用 CSS 网格中的固定值需注意仅在须要时显示滚动条滚动条装订线CSS flexbox 中的最小内容大小CSS 网格中的最小内容大小主动适宜与主动填充图片最大宽度地位:粘性css网格分组选择器内容flexbox 内容换行当咱们应用 flexbox 布局的时候,默认状况下,在容器宽度不够时,可能就会呈现这样的状况。 这个次要是因为 flex-wrap 的默认值是 nowrap,所以咱们须要这样扭转一下值。 .options-list { display: flex; flex-wrap: wrap;} 间距设计师在提供的设计稿中,很容易疏忽文本在极限状况下与其余元素之间的间距,最终可能会呈现这样的状况,文字与 icon 紧挨。 要解决这个状况,就是须要思考是在文本还是 icon 局部,依据理论状况剖析后抉择增加 margin 值来减少间距。 .section__title { margin-right: 1rem;} 不过这个状况,我个别会思考在 icon 上加 margin-left,这样的话,在没有 icon 的时候,文字还是能够顶到容器边缘。长文本内容这个就简略,就是文本过长的解决形式,个别状况下就是换行或者截断并已 ... 的模式呈现。至于抉择什么形式就要看以后页面模块的设计格调来决定了。 文中的解决形式是采纳了截断出 ... 这种。 .username { white-space: nowrap; overflow: hidden; text-overflow: ellipsis;} 避免图像被拉伸或压缩这种状况个别是在是图片由用户上传,或者图片未按规定比例应用导致的。 解决形式就是间接应用 object-fit 属性: ...

December 10, 2021 · 2 min · jiezi

关于css:CSSsticky布局

position: sticky; top:0;性能: 1)失常状况下, sticky元素在页面中失常布局; 2)当sticky元素顶部间隔浏览器页面顶部为设定值(此处为0)时, 体现得像fixed; 3)当sticky元素底部与包裹它的容器底部相触时, 恢复正常;以下示意图能够更好的感触到它的成果: demo代码: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"> --> <title>Document</title> <style> body { margin: 0; } .container { position: relative; margin: 0 auto; width: 500px; height: 2500px; background-color: red; } .footer { position: relative; margin: 0 auto; width: 500px; height: 2500px; background-color: rgb(76, 31, 160); } .header { width: 300px; height: 500px; margin: 0 auto 20px; background-color: green; } .content { position: sticky; top: 0; height: 220px; width: 300px; margin: 0 auto; background-color: rgb(90, 79, 238); } </style></head><body> <body> <div class="container"> <div class="header">header</div> <div class="content">content</div> </div> <div class="footer">footer</div> </body> <script> </script></body></html>

December 3, 2021 · 1 min · jiezi

关于css:纯css实现简单瀑布流flex-和-columncount-两种方式

形式一:column-count实现这种实现形式的毛病是:图片是先从上到下排列,再从左到右排列的 <!DOCTYPE html><html> <head></head> <style> .pubuliu { column-count: 4; list-style: none; counter-reset: item; } .pubuliu li { break-inside: avoid; margin-bottom: 4px; } .pubuliu li::before { display: block; counter-increment:item; content: counter(item); color:black; } .h100 { height: 100px; background:yellow; } .h200 { height: 200px; background: red; } .h300 { height: 300px; background:violet; } .h400 { height: 400px; background:tomato; } </style> <body> <ul class="pubuliu"> <li class="h100"></li> <li class="h400"></li> <li class="h300"></li> <li class="h100"></li> <li class="h200"></li> <li class="h100"></li> <li class="h400"></li> <li class="h300"></li> <li class="h100"></li> <li class="h200"></li> </ul> </body></html>形式二:flex布局+巧用order属性实现这种形式能够实现从左到右毛病:须要事后设定flex容器的高度,保障想要列数,且调整页面大小时会呈现一些间距过大的问题 ...

December 2, 2021 · 1 min · jiezi

关于css:你应该知道的Hooks知识

HooksHooks 是 React16.8 的新增个性,可能在不写 class 的状况下应用 state 以及其余个性。 动机在组件之间复用状态逻辑很难简单组件变得难以了解难以了解的 class Hooks 规定只有在最顶层应用 Hooks不要再循环/条件/嵌套函数中应用`只有在 React 函数中调用 Hooks 函数组件和类组件的不同函数组件可能捕捉到以后渲染的所用的值。 点击查看示例 对于类组件来说,尽管 props是一个不可变的数据,然而 this是一个可变的数据,在咱们渲染组件的时候 this 产生了扭转,所以 this.props 产生了扭转,因而在 this.showMessage 中会拿到最新的 props 值。 对于函数组件来说捕捉了渲染所应用的值,当咱们应用 hooks 时,这种个性也同样的试用于 state 上。 点击查看示例 const showMessage = () => { alert("写入:" + message);};const handleSendClick = () => { setTimeout(showMessage, 3000);};const handleMessageChange = (e) => { setMessage(e.target.value);};如果咱们想跳出'函数组件捕捉以后渲染的所用值‘这个个性,咱们能够采纳 ref 来追踪某些数据。通ref.current能够获取到最新的值 const showMessage = () => { alert("写入:" + ref.current);};const handleSendClick = () => { setTimeout(showMessage, 3000);};const handleMessageChange = (e) => { setMessage(e.target.value); ref.current = e.target.value;};useEffectuseEffect 可能在函数组件中执行副作用操作(数据获取/波及订阅),其实能够把 useEffect 看作是 componentDidMount / componentDidUpdate / componentWillUnMount 的组合 ...

December 2, 2021 · 3 min · jiezi

关于css:svg07svg中颜色表示的方式-HSL

除了惯例的英语单词(如pink), rgb、rgba等色彩示意,svg中还能够应用HSLH(色彩)S(饱和度)L(亮度)A(透明度)H : 取值范畴 [0, 359]S、L :取值范畴 [0, 100] %A :非必填,取值范畴 [0, 1]如: <svg> <rect stroke="hsla(0, 50%, 60%, 0.5)" stroke-width="2" width="100" height="100" fill="none" x="10" y="10"></rect></svg>

November 30, 2021 · 1 min · jiezi

关于css:css横向滚动

css横向滚动三要素:1、父元素设置width为100%,横向滚动overflow-x: scroll;2、父元素不换行white-space: nowrap;3、子元素设置为行内块级元素display: inline-block; .label-sec{ width: 100%; height: 6rem; overflow: hidden; overflow-x: auto; white-space:nowrap; .label-span{ display: inline-flex; min-width: 20rem; height: 4.67rem; }}

November 29, 2021 · 1 min · jiezi

关于css:css-集合

最近须要解决一些css 款式,例如高光成果,抖动动画,所以,在这里记录一下,当初及当前有用到的css特效。目前次要用的到属性有:animation(动画),transition(过渡)。transform(旋转)。@keyframes 关键帧。 1,高光成果:在须要高光的图片里面,增加一层div,编写款式。首先,给div 设置一个 after 的伪元素。通过 linear-gradient 设置一个高亮的款式,应用transform 将程度的高亮,旋转,达到咱们须要的角度,这里是旋转了45度。在应用 animation 增加 动画的播放速度。 @keyframes定义动画的挪动地位。具体代码如下:HTML代码: <div class="light"> <img src="" alt=""></div>css款式: .light{ position: relative; width: 100%; height: 100%; overflow: hidden; z-index: 1;}.light:after{ position: absolute; z-index: 1; left: -100%; top: 0; width: 100%; height: 100%; content: ""; background: linear-gradient(to right,rgba(255, 255, 255, 0) 0,rgba(255, 255, 255, 0.5) 25%,rgb(255, 255, 255) 50%,rgba(255, 255, 255, 0.5) 75%,rgba(255, 255, 255, 0) 100%); transform: skewX(45deg); animation: bright 3s infinite;}@keyframes bright{ 0%{ left: -100%; } 100%{ left: 500%; }}2,抖动动画抖动动画,用的css 属性是:transform ,次要是要在不同的时刻,旋转不同的角度,达到抖动的成果。HTML: ...

November 28, 2021 · 1 min · jiezi

关于css:纯JS集成报表系列教程7样式自定义

ActivereportsJS是纯前端的报表控件,能够跟任何web我的项目我的项目进行集成,集成的时候就会存在款式主题UI不统一的状况,这时候就须要通过调整CSS或者其余形式实现款式对立。ActivereportsJS提供一个主题编辑器的能力,能够轻松实现UI款式的匹配。 上面我就带大家一起入手操作下 1、首先,关上主题编辑器:Theme Generator 2、进行主题色彩的设置,能够自定义设置主题色彩,字体大小、字体类型 3、预览看是不期待的后果,而后点击下载对应的CSS文件 4、下载后的CSS文件间接集成到报表我的项目中 <link rel="stylesheet" type="text/css" href="styles/ar-js-theme/ar-js-ui.css"/><link rel="stylesheet" type="text/css" href="styles/ar-js-theme/ar-js-viewer.css"/><link rel="stylesheet" type="text/css" href="styles/ar-js-theme/ar-js-designer.css"/>5、全副代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><title>ActiveReportsJS sample</title><meta name="viewport" content="width=device-width, initial-scale=1.0" /><script src="dist/ie-polyfills.js"></script><script src="dist/ar-js-core.js"></script><script src="dist/ar-js-designer.js"></script><script src="dist/ar-js-viewer.js"></script><script src="dist/ar-js-pdf.js"></script><!-- 预览汉化 --><script src="dist/locales/ar-js-locales.js"></script><!-- 设计器汉化 --><script src="dist/locales/designer/zh-locale.js"></script> <link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap" rel="stylesheet"/><link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous"/><link rel="stylesheet" type="text/css" href="styles/ar-js-theme/ar-js-ui.css"/><link rel="stylesheet" type="text/css" href="styles/ar-js-theme/ar-js-viewer.css"/><link rel="stylesheet" type="text/css" href="styles/ar-js-theme/ar-js-designer.css"/><style> #designer-host, #viewer-host { margin: 0 auto; width: 100%; height: 500px; }</style></head> <body> <div id="designer-toolbar" class="container-fluid"> <div class="row mt-3 mb-3"> <button id="btnPdfPreview" type="button" class="btn btn-primary btn-sm col-sm-2 ml-1" onclick="onPdfPreview()" > PDF 预览 </button> <button id="btnDesignerOpen" type="button" class="btn btn-primary btn-sm col-sm-2 ml-1" onclick="onOpenDesigner()" > 关上设计器 </button> </div></div> <div id="designer-host"></div><div id="viewer-host"></div><script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script><script> function onOpenDesigner(){ $('#viewer-host, #btnDesignerOpen').hide(); $('#designer-host, #btnPdfPreview').show(); } async function onPdfPreview(){ const reportInfo = await this.designer.getReport(); const report = new GC.ActiveReports.Core.PageReport() await report.load(reportInfo?.definition); const doc = await report.run(); const result = await GC.ActiveReports.PdfExport.exportDocument(doc); result.download("exportedreport.pdf"); } var reportTemplates = GC.ActiveReports.ReportDesigner.templates; var resolveFunc = null; var counter = 0; reportStorage = new Map(); var designer = new GC.ActiveReports.ReportDesigner.Designer("#designer-host", { language: "zh" }); function fillReportList(){ $('#listReports').empty(); let reportIds = reportStorage.keys(); let result = reportIds.next(); while (!result.done) { const reportId = result.value; const openReportBtn = $('<button type="button" class="list-group-item list-group-item-action">' + reportId + '</button>'); openReportBtn.on('click', function(){ onSelectReport(reportId); }) $('#listReports').append(openReportBtn); result = reportIds.next(); } }; function onSelectReport(reportId){ if(resolveFunc){ $("#dlgOpen").modal("hide"); resolveFunc({definition: reportStorage.get(reportId), id: reportId, displayName: reportId}); resolveFunc = null; } }; designer.setActionHandlers({ onRender: (report) => { $('#viewer-host, #btnDesignerOpen').show(); $('#designer-host, #btnPdfPreview').hide(); viewer.open(report.definition); return Promise.resolve(); }, onCreate: function () { const reportId = `NewReport${++this.counter}`; return Promise.resolve({ definition: reportTemplates.CPL, id: reportId, displayName: reportId }); }, onOpen: function () { const ret = new Promise(function (resolve) { resolveFunc = resolve; fillReportList(); $("#dlgOpen").modal("show"); }); return ret; }, onSave: function (info) { const reportId = info.id || `NewReport${++this.counter}`; reportStorage.set(reportId, info.definition); return Promise.resolve({ displayName: reportId }); }, onSaveAs: function (info) { const reportId = `NewReport${++this.counter}`; reportStorage.set(reportId, info.definition); return Promise.resolve({ id: reportId, displayName: reportId }); } }); designer.setReport({id: 'reports/a8ad9a32fcaa4422bf518014bef2ccc6.rdlx-json'}); var viewer = new ActiveReports.Viewer('#viewer-host',{ language: "zh" }); $('#viewer-host, #btnDesignerOpen').hide();</script><script ...

November 26, 2021 · 2 min · jiezi

关于css:后期的测试和运行需要其参与

cope 指定了依赖的范畴(详情见上面依赖范畴局部)。optional 标记了依赖是否是可选的(详情见上面依赖可选局部)。遴选真题exclusions 用来排除传递性依赖(详情见上面依赖排除局部)。runntime,示意依赖无需参加到我的项目的编译,不过前期的测试和运行须要其参加其中。http://lx.gongxuanwang.com/ss...provided,示意打包的时候能够不必包进去,别的容器会提供。和 compile 相当,然而在打包阶段做了排除的动作。 在应用Spring Framework的时候就不必去思考它依赖了什么,也不必放心引入多余的依赖。Maven会解析各个间接依赖的POM,将那些必要的间接依赖,以传递性依赖的模式引入到以后的我的项目中。 如果所有这三个的范畴都是compile的话,遴选真题那么X和Y就是A的compile范畴的传递性依赖,然而如果我想X、Y不作为A的传递性依赖,不给它用的话,能够依照上面的形式配置可选依赖:你想引入本人想要的,这时候就要用到排除依赖了,比方下图中spring-boot-starter-web自带了logback这个日志包,我想引入log4j2的,所以我先排除掉logback的依赖包,再引入想要的包就行了。http://lx.gongxuanwang.com/ss...

November 24, 2021 · 1 min · jiezi

关于css:页面的元素包括活动的主页面

咱们用三个页面:首页,页面A和页面B,三个页面都有不同的壳,嵌套的不同的H5页面。首页:页面元素蕴含banner图,点击banner图会进入流动阐明页A流动阐明页A:遴选公务员页面的元素包含参加流动须要满足的条件,取得处分的人数限度,取得处分的参加人员列表,去加入流动的按钮流动详情页B:页面的元素包含流动的主页面,返回上一页的按钮; 通过下面的形容流程后:首页→流动阐明页A→流动详情页B→返回上一页,回到流动阐明页A;此时咱们点击左上角的返回按钮,咱们预期的成果是回到首页,然而理论的成果是web-view嵌套的H5页面刷新了一下,并没有回退至首页。遴选公务员尝试批改问题,反而引发其余更重大问题 批改代码后,再通过流程后:首页→流动阐明页A→流动详情页B→返回上一页,回到流动阐明页A;发现页面A空白且控制台报错:一个页面只能插入一个 '<web-view />'http://lx.gongxuanwang.com/ss...

November 24, 2021 · 1 min · jiezi

关于css:CSS-mask-实现鼠标跟随镂空效果

偶尔在某思看到这样一个问题,如何使一个div的局部区域变通明而其余局部含糊掉?,最初实现成果是这样的 进一步,还能实现任意形态的镂空成果 鼠标通过的中央清晰可见,其余中央则是含糊的。 可能一开始无从下手,不要急,能够先从简略的、相似的成果开始,一步一步尝试,一起看看吧。 一、一般半透明的成果比方平时开发中碰到更多的可能是一个半透明的成果,有点相似于探照灯(鼠标里面的中央是半透明遮罩,看起来会暗一点)。如下: 那先从这种成果开始吧,假如有这样一个布局: <div class="wrap" id="img"> <img class="prew" src="https://tva1.sinaimg.cn/large/008i3skNgy1gubr2sbyqdj60xa0m6tey02.jpg"></div>那么如何绘制一个镂空的圆呢?先介绍一种办法 其实很简略,只须要一个足够大的投影就能够了,原理如下 这里能够用伪元素::before来绘制,构造更加精简。用代码实现就是 .wrap::before{ content:''; position: absolute; width: 100px; height: 100px; border-radius: 50%; left: 50%; top: 50%; transform: translate(-50%,-50%); /*默认居中*/ box-shadow: 0 0 0 999vw rgba(0, 0, 0, .5); /*足够大的投影*/}能够失去这样的成果 二、借助 CSS 变量传递鼠标地位依照以往的教训,可能会在 js 中间接批改元素的 style 属性,相似这样 img.addEventListener('mousemove', (ev) => { img.style.left = '...'; img.style.top = '...';})然而这样交互与业务逻辑混淆在一起,不利于前期保护。其实,咱们只须要鼠标的坐标,在 CSS 中也能齐全实现追随的成果。 这里借助 CSS 变量,那所有就好办了!假如鼠标的坐标是 [--x,--y](范畴是[0, 1]),那么遮罩的坐标就能够应用 calc计算了 .wrap::before{ left: calc(var(--x) * 100%); top: calc(var(--y) * 100%);}而后鼠标坐标的获取能够应用 JS 来计算,也比拟容易,如下 ...

November 22, 2021 · 3 min · jiezi

关于css:前端面试题css

1.盒子模型(1)盒模型实质就是一个盒子,封装四周的HTML元素,它包含:边距(margin),边框(border),填充(padding),内容(content)盒模型容许在其余元素和四周元素边框之间搁置元素(2)margin:外边距,革除边框外的区域,外边距是通明的border:边框,围绕在内边距和内容外的边框padding:内边距,革除内容四周的区域,内边距是通明的content:盒子的内容,显示文本和图像 2.规范盒子(W3C盒子):box-sizing:content-box;大小因内容的变动而变动盒子总宽度:width+padding-left+padding-right+border-left+border-right+margin-left+margin-right盒子总高度height+padding-top+padding-bottom+border-top+border-bottom+margin-top+margin-bottom规范盒子也称为内容盒子,特点是:当咱们为一个盒子指定width属性的时候,实际上width仅为内容的宽度,当padding和border变大 的时候,内容宽度不变,盒子所占的总体宽度要变大 3.边框盒子(IE盒子模型)box-sizing:border-box;大小不会因内容的扭转而变动盒子总宽width+margin-left+margin-right盒子总高height+margin-top+margin_bottom

November 19, 2021 · 1 min · jiezi

关于css:如何让更新状态的动画更丝滑

前言如果有一个列表,列表有一个性能按钮,叫做更新。这个按钮须要一个状态,用来示意数据正在更新。个别状况下,用一个loading就能够。然而如果丧心病狂的UI给了一个这样的icon:咱们该怎么解决? 解决办法只有更新数据,就让这个icon转动一圈只有更新数据,就让icon始终转动,拿到数据之后进行,回到原位办法一最简略,然而体验不好。因为获取数据的工夫不固定,有可能长有可能短。 办法二体验很好,然而为了能丝滑的回到原位,咱们须要做更多的解决。如果用用户频繁更新,解决起来很麻烦。为了做好这里,可能会耗几个小时,小半天的工作量。 有没有更好的解决办法呢? 最佳形式这是一段scss代码: .refresh-icon { animation: runTime linear 2s infinite; animation-play-state: paused; &.updating { animation-play-state: running; }}@keyframes runTime { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); }}定义一个线性动画,有限循环旋转,每一次2秒,从0度到360度。失常状况下,这个动画是暂停的,一旦更新数据,启动动画。能够完满的解决一个比拟麻烦的需要。

November 19, 2021 · 1 min · jiezi

关于css:css-实现页面区域分栏左右拉伸调整布局

想要实现如下图成果,红色可拉动的线往左边拉左边内容区域变大右边内容区域变小,往右边拉左边内容区域变小右边内容区域变大。咱们先来理解一下 css 的resize属性中转w3s,resize: none|both|horizontal|vertical;能够调整元素是否可左右拖动。 把 W3s 中的 resize 改为resize:horizontal;点击运行一下,就只可左右拉动。 接下来咱们把 w3s 里代码改为如下内容,而后点击运行 <!DOCTYPE html><html> <head> <style> .container { display: flex; } .left { position: relative; } .left .resize { width: 300px; resize: horizontal; overflow: auto; height: 200px; } .content { position: absolute; top: 0; right: 5px; bottom: 0; left: 0; overflow-x: hidden; } .right { width: 200px; flex: 1; background: #eee; height: 200px; } </style> </head> <body> <div class="container"> <div class="left"> <div class="resize"></div> <div class="content"> 吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖吖 </div> </div> <div class="right">a啊啊啊</div> </div> </body></html>诶~如同实现了咱们想要的那种成果,然而只能点击右下角拖动,这不是现实成果,所以咱们再来改变一下: ...

November 14, 2021 · 2 min · jiezi

关于css:CSS几个有趣的属性分享

这篇文字给大家分享几个有意思的css属性directionunicode-bidiwriting-modetext-orientation 按钮或者文本左右程序置换置换按钮地位惯例做法: HTML元素换个地位float:right,那还要居中呢?js置换dom程序CSS,css能够吗?能够!要害属性direction CSS属性 direction 用来设置文本、表列程度溢出的方向。 rtl 示意从右到左 (相似希伯来语或阿拉伯语), ltr 示意从左到右 (相似英语等大部分语言).咱们用这个属性来扭转按钮的排列方向即可,真是不便呀在线示例 <div class='wrap wrap-rtl'> <button class="button">勾销</button> <button class="button button-primary">确认</button></div>.wrap { width: 200px; text-align: center;}.wrap-rtl { direction: rtl;}兼容 翻转文字惯例做法: js str.split('').reverse().join('')CSS,css能够吗?能够!direction 属性仿佛只能扭转图片或者按钮的出现程序,但对纯字符内容(中文)如同并没有什么成果,咱们能够借助 direction 的搭档属性unicode-bidi属性来决定如何解决文档中的双书写方向文本在线示例 <div class="text">我是被翻转的文字</div>.text{ direction:rtl; unicode-bidi:bidi-override; text-align:left}兼容 文本垂直或者90°旋转惯例做法: CSS3 rotate(90deg),不怎么好用,还要调整地位或者试试上面这个用到的css属性writing-mode定义了文本程度或垂直排布以及在块级元素中文本的前进方向text-orientation设定行中字符的方向在线示例 文本竖向布局 <span class='mixed'>中国人不骗中国人</span>.mixed{ writing-mode: vertical-lr;}文本竖向布局,文字旋转90° <span class='sideways'>中国人不骗中国人</span>.sideways{ writing-mode: vertical-lr; text-orientation: sideways-right;}兼容 交换群

November 12, 2021 · 1 min · jiezi

关于css:你是这样的-CSS19个唯美的边框我的项目又有亮点了

作者:niemvuilaptrin译者:前端小智起源:medium有幻想,有干货,微信搜寻 【大迁世界】 关注这个在凌晨还在刷碗的刷碗智。 本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试残缺考点、材料以及我的系列文章。 明天,分享一波唯美的边框,可减少咱们的我的项目"亮"点,让用户爱起来。 突变边框动画 事例地址:https://codepen.io/mike-schul... CSS Animation Effect Border 事例地址:https://codepen.io/uiswarup/p... 悬停 事例地址:https://codepen.io/giana/pen/... SVG 事例地址:https://codepen.io/ZachSaucie... Design For Button Border 事例地址:https://codepen.io/tmrDevelop... Create CSS Border Using SVG 事例地址:https://codepen.io/Mamboleoo/... Beautiful CSS Border For Button 事例地址:https://codepen.io/electeriou... Gradient Border 事例地址:https://codepen.io/chriscoyie... Create Border Animation Css 事例地址:https://codepen.io/Varin/pen/... Striped Outline Button CSS 事例地址:https://codepen.io/Zeindelf/p... Image Border Animation CSS 事例地址:https://codepen.io/pavger/pen... Hover Border 事例地址:https://codepen.io/jessedean/... Border SVG Ellipse 事例地址:https://codepen.io/coreybullm... Create Circle Border Gradient 事例地址:https://codepen.io/aniketkuda... Border Shadow Animation ...

November 12, 2021 · 1 min · jiezi

关于css:纯-CSS-实现超长内容滚动播放

如果 UI 稿设计了一个单行定宽的款式,对于超过长度的内容,个别都会抉择暗藏并展现省略号 这也是实现起来最简略,最罕用的解决办法 然而在理论需要中,很有可能要求在不扭转布局的状况下,用单行展现超长的文案且不能省略信息 这时候就能够思考,用内容来回滚动来实现上述的成果 一、需要剖析先看最终成果文案来回在指定区域内程度滚动,并且在头尾处停留一段时间 同时咱们思考做成通用的 css,所以尽可能的少应用固定值 二、性能实现1. 根底布局先结构一个根本款式 box 作为任意须要蕴含滚动组件 div 的 class,宽度、边框等个性化的 style 都应该在 box 上设置scroll-wrap 作为滚动容器的通用 classscroll-item 作为滚动内容的通用 class // index.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="./style.css"></head><body> <div class="box"> <div class="scroll-wrap"> <div class="scroll-item"> 我是结尾,我是两头我是两头我是两头,我是结尾 </div> </div> </div></body></html>.box { max-width: 15em; border: 1px solid;}.scroll-wrap { overflow: hidden; white-space: nowrap;} 2. 动效剖析 如何实现来回滚动的成果呢? 其实只有实现内容的的两种状态,再加上 animation 让这两种状态来回切换。如果这两种状态的实现都应用的雷同的属性,那么切换过程中天然就会加上动画成果 两种状态: 「我是结尾」靠左显示「我是结尾」靠右显示 咱们从简略的局部开始实现, 先写一个来回切换状态的 animation 动画 .scroll-item { animation: scroll linear 4s alternate infinite;}@keyframes scroll { 0% { background: red; } 100% { background: yellow; }} ...

November 11, 2021 · 2 min · jiezi

关于css:12-个救命的-CSS-技巧

应用 Shape-outside 在浮动图像四周蜿蜒文本它是一个容许设置形态的 CSS 属性。它还有助于定义文本流动的区域。css代码:.any-shape { width: 300px; float: left; shape-outside: circle(50%);}复制代码魔法组合这个小组合实际上能够避免你在 HTML 中遇到的大多数布局谬误的问题。咱们的确不心愿程度滑块或相对定位的我的项目做他们想做的事件,也不心愿到处都是随机的边距和填充。所以这是你们的魔法组合。* {padding: 0;margin: 0;max-width: 100%;overflow-x: hidden;position: relative;display: block;}复制代码有时“display:block”没有用,但在大多数状况下,你会将 和 <span> 视为与其余块一样的块。所以,在大多数状况下,它实际上会帮忙你! 拆分 HTML 和 CSS这更像是一种“工作流程”类型的技巧。我倡议你在开发时创立不同的 CSS 文件,最初才合并它们。例如,一个用于桌面,一个用于挪动等。最初,你必须合并它们,因为这将有助于最大限度地缩小您网站的 HTTP 申请数量。同样的准则也实用于 HTML。如果你不是在 Gatsby 等 SPA 环境中进行开发,那么 PHP 可用于蕴含 HTML 代码片段。例如,你心愿在独自的文件中保留一个“/modules”文件夹,该文件夹将蕴含导航栏、页脚等。因而,如果须要进行任何更改,你不用在每个页面上都对其进行编辑。模块化越多,后果就越好。 ::首字母它将款式利用于块级元素的第一个字母。因而,咱们能够从印刷或纸质杂志中引入咱们相熟的成果。如果没有这个伪元素,咱们将不得不创立许多跨度来实现这种成果。例如:这是如何做到的?代码如下: p.intro:first-letter { font-size: 100px; display: block; float: left; line-height: .5; margin: 15px 15px 10px 0 ;}复制代码四大外围属性CSS 动画提供了一种绝对简略的办法来在大量属性之间平滑过渡。良好的动画界面依赖于晦涩晦涩的体验。为了在咱们的动画工夫线中保持良好的性能,咱们必须将咱们的动画属性限度为以下四个外围:缩放 - transform:scale(2)旋转 - transform:rotate(180deg)地位 – transform:translateX(50rem)不透明度 - opacity: 0.5边框半径、高度/宽度或边距等动画属性会影响浏览器布局办法,而背景、色彩或框暗影的动画会影响浏览器绘制办法。所有这些都会大大降低您的 FPS (FramesPerSecond)。您能够应用这些属性来产生一些乏味的成果,但应审慎应用它们以保持良好的性能。 ...

November 2, 2021 · 2 min · jiezi

关于css:CSS标准盒子模型和怪异盒子模型参考了其他文章

一、什么是盒子?(1)它是主观意识借助实体或者虚构体现形成主观论述状态构造的一种表白目标的物件 (2)css中的盒子模型它是能够对元素进行布局,设置间隔的大小,这外面包含含有外边距、边框、内边距和内容主体这四个局部。 二、什么是盒子模型?(1)CSS中的规范盒子模型(W3c规范的盒子模型)图中的width只蕴含content的width, * 触发条件:规范盒模型的css属性设置是box-sizing:content-box(2)怪异盒子模型(IE规范的盒子模型)图中的width蕴含content的width + 左右padding + 左右border 怪异盒次要体现在IE内核浏览器中,以后大部分浏览器反对的是W3C的规范盒子模型,不过其余浏览器也保留了IE盒子模型的反对,须要在CSS中增加触发怪异盒的条件。 * 触发条件:* 1.怪异盒模型的css属性设置是box-sizing:border-box* 2.文档构造的doctype不写,这个是在IE8 IE7 IE6 IE5等低版本上有,测试能够在win7零碎上比拟老旧的IE浏览器上,win10自带的新IE浏览器不能够。

October 27, 2021 · 1 min · jiezi

关于css:嵌入式Linux学习笔记

学习晚点原子《【晚点原子】I.MX6U嵌入式Linux驱动开发指南V1.5.2.pdf》集体笔记 罕用操作&相干常识压缩解压解压.tar.bz2tar -vxjf linux-imx-4.1.15-2.1.0-g8a006db.tar.bz2压缩.tar.bz2tar -vcjf alientek_uboot.tar.bz2 alientek_uboothttps://www.doc88.com/p-91399...编译将后面编译进去的 led.o 文件链接到 0X87800000 这个地址,应用如下命令:arm-linux-gnueabihf-ld -Ttext 0X87800000 led.o -o led.elf上述命令中-Ttext 就是指定链接地址,“-o”选项指定链接生成的 elf 文件名,这里咱们命名为 led.elf。上述命令执行完当前就会在工程目录下多一个 led.elf 文件 led.elf 文件也不是咱们最终烧写到 SD 卡中的可执行文件,咱们要烧写的.bin 文件,因而还须要将 led.elf 文件转换为.bin 文件,这里咱们就须要用到 arm-linux-gnueabihf-objcopy 这个工具了。 arm-linux-gnueabihf-objcopy 更像一个格局转换工具,咱们须要用它将 led.elf 文件转换为led.bin 文件,命令如下:arm-linux-gnueabihf-objcopy -O binary -S -g led.elf led.bin上述命令中,“-O”选项指定以什么格局输入,前面的“binary”示意以二进制格局输入,选项“-S”示意不要复制源文件中的重定位信息和符号信息,“-g”示意不复制源文件中的调试信息。 大多数状况下咱们都是用 C 语言写试验例程的,有时候须要查看其汇编代码来调试代码,因而就须要进行反汇编,个别能够将 elf 文件反汇编,比方如下命令:arm-linux-gnueabihf-objdump -D led.elf > led.dis上述代码中的“-D”选项示意反汇编所有的段,反汇编实现当前就会在当前目录下呈现一个名为 led.dis 文件能够关上 led.dis 文件看一下,看看是不是汇编代码从图 能够看出 led.dis 外面是汇编代码,而且还能够看到内存分配情况。在0X87800000 处就是全局标号_start,也就是程序开始的中央。通过 led.dis 这个反汇编文件能够显著的看出咱们的代码曾经链接到了以 0X87800000 为起始地址的区域。makefileobjs := start.o main.ohttps://www.doc88.com/p-91399...ledc.bin:$(objs) arm-linux-gnueabihf-ld -Timx6ul.lds -o ledc.elf $^arm-linux-gnueabihf-objcopy -O binary -S ledc.elf $@arm-linux-gnueabihf-objdump -D -m arm ledc.elf > ledc.dis%.o:%.s ...

October 25, 2021 · 2 min · jiezi

关于css:仅用-3-个属性制作响应式-CSS-网格布局

好买网 GoodMai如果我通知你,你只须要晓得 3 个 css 属性就能够制作一个齐全响应式的 css 网格,如下所示:让咱们从 html 布局开始。只是一个容器和对应于文章和页眉+页脚的div:●●●●●●●<div><div>Header</div><div>Article 1</div><div>Article 2</div><div>Article 3</div><div>Footer</div></div> 首先,咱们须要将容器设置为网格并在单元格之间增加一点间隙:●●●●container {display: grid;grid-gap: 10px;} 最重要的局部是定义理论网格。如果咱们将此布局放在 Excell 表中,它将如下所示: 能够应用以下grid-template-areas属性将其转换为 CSS :●●●●●●●●.container {grid-template-areas: "h h h""a1 a2 a3""f f f"; display: grid;grid-gap: 10px;} 当初要将 html 元素搁置在相应的 CSS 网格单元中,咱们能够应用grid-areaprop:●●●●●.header { grid-area: h; }.art.first { grid-area: a1; }.art.second { grid-area: a2; }.art.third { grid-area: a3; }.footer { grid-area: f; } 使 CSS 网格具备响应性 为了使这个响应式,咱们能够更改表格布局: 所以一次又一次的媒体查问来grid-template-areas援救。●●●●●●●●●●@media only screen and (max-width: 600px) {.container {grid-template-areas: "h""a1""a2""a3""f"; }} ...

October 25, 2021 · 1 min · jiezi

关于css:浅谈在CSS中元素水平居中且垂直居中的常用的方法

(1)第一种办法:应用相对定位+外边距(设置position为相对定位absolute,给left和top别离设置为父级元素的50%,设置上外边距和左外边距为别离为本身高度和宽度的一半,且为负值) position:absolute; left:50%; top:50%; margin-top:-height/2px; margin-left:-width/2px;(2)第二种办法:也是应用相对定位+外边距(设置position为相对定位absolute,给left、right、top、bottom都设置为零;设置外边距为auto主动适应) position:absolute;left:0; right:0; top:0; bottom:0; margin:auto;(3)第三种办法:dispaly:inline-block与vertical-align:middle 配合来父元素的text-align:center; 父:text-align:center;子:display:inline-blockvertical-align:middledisplay属性详情vertical-align属性详情 (4)第四种办法:应用相对定位+平移(设置position为相对定位absolute,给left和top别离设置为父级元素的50%,设置X轴平移和Y轴平移间隔为别离为本身高度和宽度的一半,且为负值) position:absolute;top:50%; left:50%; transform:translateX(-50%); transform:translateY(-50%);什么是transform? (5)第五种办法:这种办法是应用flex布局,在元素css中申明为flex; display:flex; justify-content:center; align-items:center;什么是flex布局? 加油!!!

October 19, 2021 · 1 min · jiezi

关于css:css基础之布局

css的布局:float,position,flex、transform,grid,::after::before 两栏布局 <div class="main1"> <div class="box-m1 m1-left"> <p>leftleftleftleftleftleftleft</p> </div> <div class="box-m1 m1-right"> <p>rightrightrightrightrightright</p> </div> </div>第一种float and absolute and float+BFC 上面是float+BFC .main1 { word-break: break-all; } .m1-left { float: left; margin-right: 20px; background-color: red; } .m1-right { overflow: hidden; /*左侧元素会因为浮动盖在右侧元素上,因而要将右侧元素变成BFC*/ zoom: 1; background-color: gray; }第二种flex IE10及以上 其余没故障 .main1 { display: flex; word-break: break-all; } .m1-left{ margin-right: 20px; background-color: red; } .m1-right{ flex: 1; background-color: gray; } 第三种grid 基于网格 .main1 { display:grid; grid-template-columns:auto 1fr; grid-gap:20px; word-break: break-all; } .m1-left{ margin-right: 20px; background-color: red; } .m1-right{ background-color: gray; }Flexbox 和GridFlexbox用于一维布局,Grid用于二维布局,即如果在一个方向上排列内容项用flex,如果要在两个维度(包含行和列)中创立整个布局,那么应该应用CSS Grid,如9宫格等两者之间的另一个外围差别是Flexbox基于内容,而Grid基于布局 ...

October 19, 2021 · 2 min · jiezi

关于css:关于两个图片相嵌显示出包含的效果存在外图片的边框

这是咱们这题的代码:<style> #bg1 { background: url(./bg_border.jpg); height: 1000px; } #bg2 { background: url(./bg_poem.jpg); height: 1000px; }</style><body> <div id="bg1"> <div id="bg2"> </div></div></body> 当两个DIV相嵌,我给两个div都引入了图片会出先几种状况①: 这是什么属性都没有增加,只会显示#bg2的引入图片②:当我给#bg2增加内边距时,会把整个盒子撑大,然而咱们还是看不到#bg1的图片③:当我给#bg2增加外边距是,左右的可能显示出#bg1的图片,高低不会显示(这点前面会给解释)④:当我#bg1增加外边距时,盒子大小会产生扭转,因为是一般盒子,盒子被撑大了解决:⑤:当我给#bg1增加内边距时,达到了咱们想要的成果,如图显示:这一点是css比拟常见的问题,两个容易互相嵌套时,咱们尽量去设置里面容器的内边距而后去扭转内容器的地位(内容器也相当于是盒子模型外面的文本 padding就是文本到边框的间隔)

October 11, 2021 · 1 min · jiezi

关于css:flex-1-的理解

flexflex根本语法参考MDN: [https://developer.mozilla.org...] 须要留神的点flex-basis是对于主轴来说,主轴能够是x轴,也能够是y轴,为了不便行文,默认主轴为x轴 flex-basis的优先级比width高item的宽度等于basic设置或者width设置的值加上残余空间被平分后本人占据那局部的值比方 容器宽度等于700pxitem1 flex-grow=2 flex-basic或者宽度=100pxitem2 flex-grow=1 flex-basic或者宽度=200pxitem3 flex-basic或者宽度=100px(flex-grow默认等于0)item1最终宽度 =(700 - 100 - 200 - 100)/ ( 1 + 2) * 2 + 100 = 300item1最终宽度 =(700 - 100 - 200 - 100)/ ( 1 + 2) * 1 + 200 = 300item1最终宽度 = 100 设置flex属性,不论是用单值语法还是双值语法,会扭转flex-grow flex-shrink flex-basis 的默认属性比方 flex: 1;这个是单值语法:1代表的是flex-grow的值,其余两个值会被省略,被省略的时候,会有默认值flex-grow: 省略时默认值为 1。 (本来默认值为 0)flex-shrink: 省略时默认值为 1。 (本来默认值为 1)flex-grow: 省略时默认值为 0。 (本来默认值为 auto)所以flex: 1 等于 flex: 1 1 0,而不是felx: 1 1 autoflex布局能够实现的几个成果前置筹备工作 ...

October 10, 2021 · 1 min · jiezi

关于css:兼容火狐的滚动条样式

.beauty-scroll { scrollbar-color: #1890ff #91d5ff; /* 第一个方块色彩,第二个轨道色彩(用于更改火狐浏览器款式) */ scrollbar-width: thin; /* 火狐滚动条无奈自定义宽度,只能通过此属性使滚动条宽度变细 */ -ms-overflow-style: none; /* 暗藏滚动条(在IE和Edge两个浏览器中很难更改款式,固采取暗藏形式) */ /* 以下是chrome浏览器自定义滚动条款式形式 */ &::-webkit-scrollbar { /*滚动条整体款式*/ width: 3px; /*高宽别离对应横竖滚动条的尺寸*/ height: 1px; } &::-webkit-scrollbar-thumb { /*滚动条外面小方块*/ border-radius: 3px; -webkit-box-shadow: inset 0 0 1px rgba(0, 0, 0, 0); background: #dfdfdf; } &::-webkit-scrollbar-track { /*滚动条外面轨道*/ -webkit-box-shadow: inset 0 0 1px rgba(0, 0, 0, 0); border-radius: 3px; background: #fff; }}

October 9, 2021 · 1 min · jiezi

关于css:CSS动画

动画的原理浏览器的渲染过程 依据HTML构建HTML树 (DOM)依据CSS构建CSS树(CSSOM)将两棵树合并成一颗渲染树 (render tree)Layout布局 (文档流、盒模型、计算大小和地位)Paint绘制(把边框色彩、文字色彩、暗影等画进去)Compose合成(依据层叠关系展现画面)浏览器的渲染原理的三种更新形式 JS/CSS>款式>布局>绘制>合成备注:布局能够简略了解为地位和大小,如果CSS中有对布局相干的内容进行改变,那么浏览器渲染时,会从新走布局>绘制>合成的路线官网答复:如果您批改元素的“layout”属性,也就是扭转了元素的几何属性(例如宽度、高度、左侧或顶部地位等),那么浏览器将必须查看所有其余元素,而后“主动重排”页面。任何受影响的局部都须要从新绘制,而且最终绘制的元素需进行合成。JS/CSS>款式>绘制>合成备注:这个能够了解为在对CSS进行相干改变时,如果没有对地位和大小进行到改变,则浏览器进行渲染时会跳过布局这个流程,退出你只批改了背景色彩,那么渲染时就走绘制>合成的路线官网答复:如果您批改“paint only”属性(例如背景图片、文字色彩或暗影等),即不会影响页面布局的属性,则浏览器会跳过布局,但仍将执行绘制。JS/CSS>款式>合成CSS动画优化 JS优化应用requestAnimationFrame代替setTimeout或setIntervalCSS优化应用will-change或transformtransform四个罕用性能 translate 位移scale 缩放rotate 旋转skew 歪斜 具体用法可查看MDN文档transition的用法作用:补充两头帧语法:transition:属性名 时长 过渡形式 提早过渡形式: lineareaseease-inease-outease-in-outcubic-bezierstep-startstep-endstepsanimation的用法作用:申明关键帧,增加动画申明关键帧: 语法:@keyframs 动画名{}规范写法 如下@keyframes 动画名 { from { transform: translateX(50%); } to { transform: translateX(100%); }}@keyframes 动画名 { 0% { top: 0; left: 0; } 30% { top: 30px; } 68%, 72% { left: 30px; } 100% { top: 60px; left: 100%; }}语法:animation:时长|过渡形式|提早|次数|方向|填充模式|是否暂停|动画名具体查看MDN文档

October 4, 2021 · 1 min · jiezi

关于css:CSS面试题

一、把握盒子程度垂直居中的五大计划1.display .father{ display:flex; align-items: center; justify-content:center;}2.position以下两种child盒子须要有宽高①:须要思考宽高 .father{ position: relative;}.child{ width: 50px; height: 50px position:absolute; top: 50%; left:50%; margin-left: -25px; margin-top: -25px;}②:不须要思考宽高 .father{ position: relative;}.child{ position: absolute; top:0; left:0; right: 0; bottom: 0; margin: auto;}不须要具体的宽高,然而兼容性不是很好css3 .child{ position: absolute; top: 50%; left 50%; transform: translate(-50%, -50%);}javascript办法 let HTML = documnet.documentElement;winH = HTML.clientHeight;windW = HTML.clientWidth;childW = box.offsetWidth;childH = box.offsetHeight;box.style.postion ='absolute';box.style.left = (winW - childW) / 2 + 'px';box.style.top = (winH - childH) / 2 + 'px';table-cell 办法 ...

October 3, 2021 · 2 min · jiezi

关于css:css伪类选择器踩坑

1. 问题形容今日看web前端视频之小米官网实战案例,过程中有一个成果(下拉层),讲师解说时翻车了,最初讲师发现是css申明局部代码地位写反了,问题解决了,但暂停视频重复查看也不晓得具体清晰的起因,尽管成果上能够满足案例成果,但还是只知其一;不知其二,手足无措,本认为是哪些基础知识把握不牢,于是想着私下做一个demo钻研一下。对于根底阶段,任何问题,任何疑难都要尽可能的解决,不留纳闷。 本认为问题呈现在选择器方面,最初发现可能是某些原理之前了解错了,或者没有了解。明确之后,感觉对某些常识有了新的认知。 案例成果具体形容(简化) HTML代码: <div class="box"> <span class="show">我是box</span> <div class="box1"> <div class="box2"> 每个人都不得不面对这些问题。 在面对这种问题时, 在这种艰难的抉择下,自己思来想去,寝食难安。 非洲在不经意间这样说过,最灵繁的人也看不见本人的背脊。 </div> </div></div>CSS代码: /* 为span设置默认款式 */.show { color: red; background-color: #bfa;}/* 当鼠标移入到 .show时,款式变成小手 */.show:hover { cursor: pointer;}/* 目标: 当鼠标移入到 .show时,显示 .box2的内容 */.show:hover ~ .box1 > .box2 { height: 100px; cursor: pointer;}/* 当鼠标移出 .show外,仍显示下拉内容 *//* 给 .box2设置款式,此时 选择器优先级是 10+10=20 */.box2:hover { height: 100px; cursor: pointer; background-color: rgb(190, 190, 236);}/* 默认时 .box2的高度为0,且裁剪溢出内容 *//* 给 .box2设置款式,此时 选择器优先级是 10+10 =20 */.box1 .box2 { height: 0; overflow: hidden; background-color: orange;}成果(非预期成果): ...

October 3, 2021 · 2 min · jiezi

关于css:CSS定位

div分层从上到下顺次分为: 内联子元素浮动元素 脱离文档流块级子元素 块级元素若文字呈现重叠的状况,是以文字呈现的先后顺序进行笼罩borderbackground新属性-position属性值: static默认值,待在文档流里。relative绝对定位,升起来,但不脱离文档流absolute相对定位,定位基准是先人里的非static 比方敞开按钮 留神:应用absolute,其父元素须要加relative 备注:元素会被移出失常文档流,并不为元素预留空间,通过指定元素绝对于最近的非 static 定位先人元素的偏移,来确定元素地位。fixed固定定位,定位基准是viewport 手机上尽量不要应用这个属性元素会被移出失常文档流,并不为元素预留空间,而是通过指定元素绝对于屏幕视口(viewport)的地位来指定元素地位。sticky粘滞定位默认每个元素的z-index是auto,而auto计算出来的值为0.white-space:nowrap; --文字内容不准换行 层叠上下文层叠上下文造成条件(须要记忆): 根元素(html)z-index不为auto的相对/绝对定位opacity属性小于1的元素transform的值不为none的元素一个z-index值不为auto的flex我的项目,即父元素 display:flex;固定定位元素和sticky定位元素

October 3, 2021 · 1 min · jiezi

关于css:SASS-和-SCSS-的区别

原文) Difference Between SASS and SCSSSASS(Syntactically Awesome Style Sheets)是一种由 Hampton Catlin 设计、Chris Eppstein 和 Natalie Weizenbaum 开发的样式表语言。 它是一种预处理器脚本语言,将被编译或解释为 CSS。 Sass Script 自身就是一种脚本语言。 它的 typing 规定是动静的。 SCSS 通常被称为 Sassy CSS,它是作为 SASS(Syntactically Awesome Style Sheets)的次要语法引入的,它建设在现有的 CSS 语法之上。 它应用分号和括号,如 CSS(级联样式表)。 SCSS 是 CSS 的超集,即所有 CSS 性能都将在 SCSS 中可用,并且蕴含 SASS(Syntactically Awesome Style Sheets)的一些性能。 SCSS 使任何 CSS 术语都无效。 9 大区别: 区别1SASS是Syntactically Awesome Style Sheets,是CSS的扩大,提供嵌套规定、继承、Mixins等个性,而SCSS是Sassy Cascaded Style Sheets,与CSS相似,填补了CSS与SASS之间的空白和不兼容。 它是在 MIT 许可下取得许可的。它首次呈现在2006年。 区别2SASS 更易于应用且语法更简略,因而无需应用分号、曲线、大括号等,而 SCSS 与 CSS 齐全兼容,文件扩大名为 .scss 类型。 ...

October 2, 2021 · 1 min · jiezi

关于css:Chrome-开发者工具里的-CSS-grid-editor

Grid 布局与 Flex 布局有肯定的相似性,都能够指定容器外部多个我的项目的地位。然而,它们也存在重大区别。 Flex 布局是轴线布局,只能指定"我的项目"针对轴线的地位,能够看作是一维布局。Grid 布局则是将容器划分成"行"和"列",产生单元格,而后指定"我的项目所在"的单元格,能够看作是二维布局。Grid 布局远比 Flex 布局弱小。 看个具体的例子: <!DOCTYPE html><html><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> <style> span { font-size: 2em;}#container{ display: grid; grid-template-columns: 50px 50px 50px; grid-template-rows: 50px 50px 50px;}.item { font-size: 2em; text-align: center; border: 1px solid #e5e4e9;}.item-1 { background-color: #ef342a;}.item-2 { background-color: #f68f26;}.item-3 { background-color: #4ba946;}.item-4 { background-color: #0376c2;}.item-5 { background-color: #c077af;}.item-6 { background-color: #f8d29d;}.item-7 { background-color: #b5a87f;}.item-8 { background-color: #d0e4a9;}.item-9 { background-color: #4dc7ec;}</style></head><body> <span>foo</span><div id="container"> <div class="item item-1">1</div> <div class="item item-2">2</div> <div class="item item-3">3</div> <div class="item item-4">4</div> <div class="item item-5">5</div> <div class="item item-6">6</div> <div class="item item-7">7</div> <div class="item item-8">8</div> <div class="item item-9">9</div></div><span>bar</span></body></html>成果如下: ...

October 2, 2021 · 1 min · jiezi

关于css:实现类似手机悬浮按钮样式

因为我的项目须要,想要在某个页面实现一个相似iPhone悬浮按钮的性能。在之前的发问里(链接:div 设置了touchmove ,后果overflow 不失效了),有写到对于按钮高低挪动的款式,当初欠缺左右挪动的切换以及对应款式的扭转。HTML代码: <template> <div style=" touch-action: none;"> <div id="divMove" :class="!isClick && 'divMove' " @click="handleStretch" @mousedown="down" @touchstart="down" @mousemove="move" @touchmove.prevent="move" @mouseup="end" @touchend="end" > </div> <div id="stretchBtn" :class="positionNow =='right'? 'stretchBtn showStyle' : 'stretchBtn showStyleLeft'" > <div id="iconImg" class="iconImg" > <div v-if="!isClick" id="imgM"> <div id="backBtn" :class="positionNow =='right'? 'backBtn' : 'backBtnLeft' "></div> <div id="backBtnM" class="backBtnM" :style="positionNow =='right'? 'margin-left:15px' : 'margin-left:30px; transform: rotateY(0) ' "></div> </div> </div> <div v-if="isClick" :class="positionNow =='right'? 'toIndex' : 'toIndexLeft'" > <img src="../assets/img/zhuye.png" width="100%" height="35px"> </div> <div v-if="isClick" id="lineImg" class="lineImg" :style="positionNow ==='right'? 'margin-right: 5px' : 'margin-right: 5px' "> <div v-for="(item, index) in imgSrc" :key="index" class="divBorder imgSpacing"> <img :src="item.icon" width="30px" height="30px" style="border-radius:5px"> </div> </div> <div v-if="isClick" id="shouqi" :class="positionNow =='right'? 'shouqi' : 'shouLeft'" > <img :src="positionNow === 'right' ? require('../assets/img/shouqi.png') : require('../assets/img/shouLeft.png')" alt="" width="10px" height="20px" @click="handleStretch" /> </div> </div> </div></template>一开始想要通过 document.getElementById() 去更改款式,然而在切换的时候,会造成提早。于是采纳了 v-bind 判断以后悬浮按钮地位,进而渲染不同的款式。JavaScript代码: ...

September 30, 2021 · 3 min · jiezi

关于css:一些有趣的css动画

* 前言工夫过得也太快了吧,上一次更新文章曾经是一年前了。最近三次元生存挺忙的,此刻忙里偷闲,来写写文章。近期大屏写的比拟多,其中有挺多乏味的css动画,那么就来记录一下吧。 * 注释1. 抽屉成果淡入在线代码使用到clip-path对视图进行裁剪。clip-path多利用于绘制不规则图形。 @keyframes clip-enter { 0% { clip-path: polygon(0 0, 0 0, 0 100%, 0 100%); } 100% { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }}2. 流动的边框在线代码通过四个相对定位的span当做边框。例如第一个span标签,就相对定位在上方,当成上边框,设置left:-100%,让它从右边开始登程。设置animation,更改它的left。留神,这里的动画,50%的时候就应该把left设置到100%,也就是让它走完从左到右的门路。剩下的三个span标签以此类推。这里须要留神的是如何让这四个animation无缝连贯。咱们须要设置每段动画的开始工夫(animation-delay)。第一段动画为0,马上播放。第二个动画应该开始工夫应该是第一段动画总工夫/4。第三段累加,类推。 // 要害代码<template> <div class="wrapper"> <span></span> <span></span> <span></span> <span></span> <slot></slot> </div></template><style lang="scss" scoped>.wrapper span { position: absolute; display: block;}.wrapper span:nth-child(1) { top: 0; left: -100%; width: 100%; height: 2px; animation: btn-anim1 4s linear infinite;}@keyframes btn-anim1 { 0% { left: -100%; } 50%, 100% { left: 100%; }}.wrapper span:nth-child(2) { ... animation: btn-anim2 4s linear infinite; animation-delay: 1s;}@keyframes btn-anim2 { 0% { top: -100%; } 50%, 100% { top: 100%; }}.wrapper span:nth-child(3) { ... animation: btn-anim3 4s linear infinite; animation-delay: 2s;}</style>3. 星空图在线代码 ...

September 26, 2021 · 2 min · jiezi

关于css:前端面试每日-31-第893天

明天的知识点 (2021.09.25) —— 第893天 (我也要出题)[html] 页面布局时是不是节点越少越好?为什么?[css] 应用css实现相框成果[js] 写一个办法,把数组中的每一项变为原值的平方[软技能] 如何编写一个Git Hook?《论语》,曾子曰:“吾日三省吾身”(我每天屡次检查本人)。前端面试每日3+1题,以面试题来驱动学习,每天提高一点!让致力成为一种习惯,让奋斗成为一种享受!置信 保持 的力量!!! 欢送在 Issues 和敌人们一起探讨学习! 我的项目地址:前端面试每日3+1【举荐】欢送跟 jsliang 一起折腾前端,零碎整顿前端常识,目前正在折腾 LeetCode,打算买通算法与数据结构的任督二脉。GitHub 地址 微信公众号欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个Star, 同时欢送微信扫码关注 前端剑解 公众号,并退出 “前端学习每日3+1” 微信群互相交换(点击公众号的菜单:交换)。 学习不打烊,充电加油只为遇到更好的本人,365天无节假日,每天早上5点纯手工公布面试题(死磕本人,愉悦大家)。心愿大家在这虚夸的前端圈里,放弃沉着,保持每天花20分钟来学习与思考。在这变幻无穷,类库层出不穷的前端,倡议大家不要等到找工作时,才狂刷题,提倡每日学习!(不忘初心,html、css、javascript才是基石!)欢送大家到Issues交换,激励PR,感激Star,大家有啥好的倡议能够加我微信一起交换探讨! 心愿大家每日去学习与思考,这才达到来这里的目标!!!(不要为了谁而来,要为本人而来!)交换探讨欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个[Star]

September 25, 2021 · 1 min · jiezi

关于css:hover选择器控制另一个元素

情景一:管制兄弟元素办法: :hover+*只能程序为下一位的兄弟级元素,例如 <!-- 情景一:管制兄弟级元素 --> <div class="one">你们好</div> <div class="two">你好啊</div> <div class="three">你也好啊</div> <style> .one,.two,.three{ width: 200px; height: 200px; border: 1px solid black; } .one:hover+.two{ background-color: yellow; color: green; } /* 无效 */ .one:hover+.three{ background-color: yellow; color: green; } /* 有效 */ .two:hover+.one{ background-color: yellow; color: green; } /* 有效 */ </style>情景二:管制子元素 <div class="parent"> <div class="child"></div> </div><style> .parent:hover .child{ background-color:red;}</style>情景三:管制兄弟元素的子元素 <div class="first"></div> <div class="secand"> <div class="son"></div> </div> <style> .first:hover+.secand .son{ background-color: blueviolet; }</style>

September 24, 2021 · 1 min · jiezi

关于css:横向滚动的flex布局-最右侧marginright-失效

写一个横向滚动的flex布局<view class="top-wrap"> <view class="top-area-item"></view> <view class="top-area-item"></view> <view class="top-area-item"></view> <view class="top-area-item"></view></view>/* 小程序示例,疏忽单位 rpx */.top-wrap { width: 100%; display: flex; overflow-x: scroll;}.top-area-item { width: 236rpx; height: 236rpx; margin: 0 24rpx; border-radius: 12rpx; flex-shrink: 0; background-color: pink;}上述代码执行后,发现最左侧 top-area-item 的 margin-left 无效,但最右侧的 margin-right 有效: 解决办法,两头再套一层div,并设置 display: flex; overflow:visible<view class="top-wrap"> <view class="top-middle"> <view class="top-area-item"></view> <view class="top-area-item"></view> <view class="top-area-item"></view> <view class="top-area-item"></view> </view> </view>.top-wrap { width: 100%; display: flex; overflow-x: scroll;}.top-middle { display: flex; overflow: visible;}.top-area-item { width: 236rpx; height: 236rpx; margin: 0 24rpx; border-radius: 12rpx; flex-shrink: 0; background-color: pink;} ...

September 23, 2021 · 1 min · jiezi

关于css:CSS变量的作用域和默认值

CSS变量的作用域是什么?变量作用域,变量的可用性范畴。变量并不总是无效可用的,而限定变量的可用性范畴就是变量的作用域。而CSS变量在CSS层次结构中申明的地位,决定了它在整个层次结构中的可用性范畴。 通常来说,CSS变量仅对申明它的元素的子元素可见。比方上面的例子中,--bgColor变量对child元素可见: <div class="parent"> parent <div class="child">child</div></div>.parent { --bgColor: pink;}.child { background: var(--bgColor);}但如果反过来则不可见: .child { --bgColor: pink;}.parent { background: var(--bgColor);} 作用域类型CSS变量遵循词法作用域(动态作用域)规定,有两种作用域类型——全局作用域和部分作用域。 全局作用域在:root中申明的CSS变量即全局作用域的变量,即能够在CSSOM中任意地位应用。 /* 定义全局变量 */:root{ --primary-color: pink;}/* 任意地位都能够拜访全局变量 */.wrapper{ background: var(--primary-color);}部分作用域而在其余CSS层级中申明的变量仅对该CSS层级以及它的子级可见。 <div class="parent text"> parent <div class="child text">child</div></div>.parent { --fontSize: 24px; --lineHeight: 1.8;}.child { --fontSize: 18px; --lineHeight: 1.6;}.text { font-size: var(--fontSize); line-height: var(--lineHeight);}在上面对例子中,能够用雷同的命名在不同的CSS块中申明和拜访变量。部分作用域总是能够拜访外层作用域或者全局作用域的变量,相同则不可。 变量晋升和JavaScript一样,CSS变量生命能够被晋升,即CSS变量能够再申明之前应用他们。在浏览器渲染相应的HTML元素款式前,会将CSS变量的申明晋升并挪动到CSSOM的最顶部。 body { background-color: var(--bgColor);}:root { --bgColor: pink;}body { background-color: var(--bgColor);}:root { --bgColor: pink;}如下面的例子中,CSS变量--bgColor能够在:root 伪类选择器申明之前应用。CSS变量能够先拜访再申明这一个性,使得CSS变量成为一个十分弱小的性能点。 变量默认值如上面的例子中,被逗号分隔后的第二个值1.2为默认值,即如果--scale未被赋值则应用1.2这个数值。 .bigger { transform: scale(var(--scale, 1.2));}当应用var()函数时,能够调配一个或多个回退的属性值(应用逗号分隔),比方设置字体: ...

September 22, 2021 · 2 min · jiezi

关于css:Flex布局

根本知识点container款式items款式container是一个容器,而items则是蕴含在容器里的项。display:flex将一个元素变成flex容器; container款式1.flex-direction:扭转items的流动方向(主轴) row 从左到右column 从上到下row-reverse 从右到左column-reverse 从下到上2.flex-wrap:扭转折行,默认值是nowrap备注:当给container固定的宽度时,往容器外面增加宽度肯定items时,当增加的items数量加起来的宽度大于container时,往后逐步增加的items会因为要使items共处一行,而使得本人自身的宽度发生变化。 nowrapwrapwrap-reverse3.jusify-content:规定主轴对齐形式(默认主轴就是横轴)默认值是flex-start flex-start items往流动的始端顶flex-end items往流动的末端顶centerspace-betweenspace-around 在container容器还留有空白空间时,该属性的应用会将空白空间划分为多个局部围绕在各个items间接。space-evenly 各个items旁的空白空间宽度是一样的4.align-items:规定次轴对齐形式 (默认次轴就是纵轴)默认值是stretch flex-startflex-endcenterstretch 当各个items外面的内容大小不一样,从而导致各个items的高度不统一时,应用该属性会让其余items的高度与容器外面高度最高的items项保持一致。baseline 5.align-content:当有多行内容时 flex-start 当容器的高度大于总items的高度时,会使得items之间留有空白空间,应用该属性会使得所有items项个体往上聚拢。将空白空间都留在下方flex-end 当容器的高度大于总items的高度时,会使得items之间留有空白空间,应用该属性会使得所有items项个体往下聚拢。将空白空间都留在上方center 当容器的高度大于总items的高度时,会使得items之间留有空白空间,应用该属性会使得所有items项个体往中聚拢。将空白空间均匀散布在高低两边stretch 让空白空间在各个items之间均匀散布space-betweenspace-arounditems款式1.order:默认值是0规定container外面items的排列程序,order由小到大排列 2.flex-grow 默认值是0能够通过该属性扩充items的宽度 .item:first-child{ flex-glow:1;}.item:nth-child{ flex-glow:2;}.item:last-child{ flex-glow:1;}备注:相当于将container容器的宽度平均分,第一个和最初一个取得一份宽度,两头那份取得两份的宽度。 3.flex-shrink 默认值是1能够通过该属性将items的宽度进行缩放属性值为0代表避免items被进行缩放 4.flex-basis 能够通过该属性管制基准宽度默认值是auto 总体缩写:flex:flex-grow flex-shrink flex-basis 5.align-self 能够通过该属性定制align-items备注:align-items是用来规定纵轴对齐形式的,比方你规定align-items的值是flex-start,那么容器里的所有items都会往上顶,退出你想独自管制某一项的对齐形式,能够通过align-self属性来扭转。只须要在某个items项的选择器中退出该属性就行了,比方align-self:flex-end. 须要留神的几个款式及属性 display:flex;flex-diection:row/column;flex-wrap:nowrap/wrap;justify-content:conter/space-between;align-items:conter;

September 19, 2021 · 1 min · jiezi

关于css:css块格式化上下文BFC

定位形式BFC1 定位形式一般流/文档流浮动相对定位1.1 一般流/文档流规定 元素依照其在HTML中的先后地位自上而下布局行内元素程度排列,直到当行被占满而后换行,块级元素则会被渲染为残缺的一个新行所有元素默认都是一般流定位1.2 浮动规定 元素先依照一般流的地位呈现,而后依据浮动的方向尽可能向左或向右偏移平移到容器边框,或者碰到另外一个浮动的元素父容器得不到脱离一般一般流的子元素的高度会将元素的display属性变更为block浮动前的元素: block:无影响inline:浮动位于之前inline-block:浮动位于之前浮动后的元素: block:笼罩,浮动在上inline: 紧跟浮动元素inline-block:紧跟浮动元素重叠时 block:浮动在上,块内容盘绕浮动元素inline:浮动在下inline-block:浮动在下革除浮动 应用clear属性 //在父级后加一个空块.clear { clear:both}//应用伪元素加空块.parent::after { content: ""; display: block; clear: both;}BFC .parent { overflow:hidden;}下面次要针对父级高度塌陷能够对浮动周边元素增加clear属性,革除浮动带来的影响1.3 相对定位规定 元素会整体脱离一般流,不会对其兄弟元素造成影响2 BFC规定 属于一般流,能够视为一块渲染区域或者元素的一个属性 - 隔离的独立容器,不会影响其余元素浮动元素的高度也参加计算2.1 触发BFC根元素float: 不为 noneposition: absolute、fixeddisplay:inline-block、inline-table、inline-flex、inline-grid、flex、table-caption、table、table-row、table-row-group、table-header-group、table-footer-group、flow-rootoverflow:不为visible的块元素contain:layout、content、paint多列容器 column-count、column-width不为auto2.2 作用防止外边距重叠革除浮动阻止元素被浮动元素笼罩防止外边距重叠 <div class="item"></div><div class="item"></div>.item { width: 300px; height: 100px; margin: 100px; background-color: aquamarine;} 两个元素外边距都是100px,高低间距应该是200px,后果为100px,上下边距产生了重叠,<div class="container"> <div class="item"></div></div><div class="container"> <div class="item"></div></div>.item { width: 300px; height: 100px; margin: 100px; background-color: aquamarine;}.container { overflow: hidden;} 在两个元素别离包上一个container,触发BFC,BFC高低不会产生边距重合革除浮动下面曾经介绍,解决父级高度塌陷的问题 阻止浮动元素笼罩后面介绍了,浮动元素前面的块级元素会被浮动元素笼罩能够让这个块级元素触发BFC,增加overflow:hidden <div class="item1"></div><div class="item2"></div>.item1 { width: 100px; height: 100px; float: left; background-color: aquamarine;}.item2 { width: 300px; height: 300px; background-color: #dede;} ...

September 19, 2021 · 1 min · jiezi

关于css:衬线字体serif-和非衬线字体sansserif区别

首先说说这两个是英文单词是什么意思:serif: 衬线sans: 作为单词前缀,是"无, 没有"的意思,那么sans-serif 就是"非衬线" 衬线字体就是咱们相熟的宋体,楷体就是衬线字体,在比划的末端都有一些非凡的设计。非衬线字体,比方雅黑,有缘,比划都是结尾和末端是统一的。 从视觉识别和浏览体验上来讲,衬线字体更容易进步浏览的效率。然而为什么当初网页都风行雅黑这种非衬线字体呢?是因为windows零碎字体的显示导致宋体的边缘并不润滑,整体看上去并不美观。 咱们在做网页的时候,最好是给全局的font-family的字体列表的最初加一个serif或者sans-serif。这样不论在哪个零碎里,零碎都会找到对应的衬线或者非衬线字体来显示文本内容了。 还有一种常见的字体品种:monospace,是咱们程序工作者罕用的一种字体:等宽字体。因为工作须要,咱们的代码格局须要保障每个字幕或符号所占的宽度统一,所以就有了这种字体的产生。比方咱们常见的:Consolas,Courier New。

September 19, 2021 · 1 min · jiezi

关于css:字符串库函数的模拟实现

它蕴含了0个或者多个由sep字符串中一个或者多个分隔符宰割的标记。strtok函数找到str中的下一个标记,并将其用\0结尾,返回一个指向这个标记的指针。星池starpool(注:strtok函数会扭转被操作的字符串,所以在应用strtok函数切分的字符串个别都是长期拷贝的内容并且可批改。)strtok函数的第一个参数不为NULL ,函数将找到str中第一个标记,,须要应用<ctrl+z>并按下enter输出,整个语句所要表白的意思也就是当你在输出文件完结标记时才会使语句进行,这样的语句常在牛客网的题目中应用,当题目要求你有多组输出,并且没有明确到底输出多少组时,应用这样的语句是一个十分棒的写法。 但当&a的地址+1后就指向了数组的最初即一个未开拓的未知空间,https://www.starpool.cn 因而解援用后也就失去了一个随机数。这也是为什么须要将&a的地址强制转换为(int*)的类型,不然编译器基本不会把他当作一个int的类型输入。

September 16, 2021 · 1 min · jiezi

关于css:NoCode-实战-想要开发在线选课系统何必那样大费周章

「关注」并「星标」咱们,每天接管对于亚马逊云科技的最新资讯! 作为课余生存丰富多彩的大学生,你兴许加入过很多兴趣小组。如果你读到了本文,那么很大概率猜想,你八成也会加入各种计算机兴趣小组。 那么无妨试着和组员们一起,给大家开发个在线订课选课零碎吧!不仅能够借此机会锤炼一下软件开发技能,学习新技术,在实践中把握新技能,还能让更多老师同学从中受害,岂不美哉? 就算你曾经进入职场,相似的技术也能够换个角度利用到工作中很多与预订无关的场景中。快来一起来看看吧! 01.定义数据表数据表是低代码或零代码的根基,实质上就是通过对数据表的操作来定制化展示数据。首先解说下本我的项目中会应用到的数据表。 本例一共波及七张表,别离如下: ClassTab 表,用来展示本周的全副课程安顿 MyClass表,用来记录学生抉择的将要加入的本周课程。表中的“value”列的数据提取自WeekDays表中的“value”列,用作工作日排序,前面会用到。=FINDROW(WeekDays,"WeekDays[工作日]=%",[Weekday])[Value] ClassList表,记录着本周所有的课程目录 ClassLocation表,这个表中记录着每个课程对应的上课地点 ClassMap表记录着每个课程对应的老师名称 Teachers表是老师目录表,记录着本周课程对应的所有老师的名称 WeekDays表是本周工作日的记录表,表中的Value列是编号列,用做排序应用 下面七张表的对应关系为: ● ClassList表和WeekDays表对应ClassTab表的“工作日”列和“课程时段”列的PickList援用数据源表 ● ClassList表和Teachers表是ClassMap表的“Name”和“Teacher”列的PickList援用数据源表 ● ClassList表也是ClassLocation表的“Class”列的PickList援用表 能够看出 ClassList 课程表是大部分其余表的援用数据源,其本质上是通过逻辑对应关系,把 ClassList 中的课程展示进去。这里须要重点了解下。 02.剖析业务逻辑接下来咱们介绍下本例的业务逻辑,业务逻辑决定着底层数据的展示形式。 首页数据展现,数据来自ClassTab表,每个工作日的课程依照行的形式进行展示,不同的课程时段作为列来宰割。 每日课程展现,在首页的每个数据行代表一个工作日的课程,点击后开展每日课程具体,在本页中能够通过点击“具体”按钮查看本日每个课程的详细信息(课程名称、课程工夫、对应的老师、上课地点),还能够点击“加入”按钮来决定是否加入本人感兴趣的课。 我的课程展现,在我的课程页面中列出了所有订阅过的课程,能够看到这些课程对应的工作日、工夫及课程名信息。还能够对其进行勾销操作。本页数据来自 MyClass 表,并将按照“工作日”和“工夫”列进行排序。 03.开始构建App在介绍了数据表设计和业务逻辑后,咱们开始着手对 APP 进行构建。 登录 Honeycode 网站,新建一个Workbook并将其命名为ClassBooking。 创立第一局部介绍的七张数据表,并设置好援用关系。 在首页中增加Column List列表对象,数据源抉择“Classtab”数据表。选中增加具体页。 列表属性页面增加条件显示,用来应用蓝绿色来距离显示每行,同时对边缘进行钝化,减少界面好看度。其条件表达式为: =MOD(ROW(THISROW()),2)=0 表达式中应用ROW对以后数据行进行标号,而后应用 MOD 来对行号取模判奇偶行并设置对应的色彩。 在主动生成行内容具体页中,每行的前面别离增加两个按钮“具体”和“加入”。 在具体页底部减少一个 Block 和四个 DataCell 用来展现课程具体内容。 对第5步中的“具体”按钮设置可见性。表达式内容为: =NOT(ISBLANK($[0800 0950 column data])) 通过判断课程时段列的值是否为空,决定是否显示“具体”按钮。 设置“具体”按钮的ACTIONS,把数据从InputRow中取出并且写入到第6步的属性Block中。须要留神的是,DataCell变量teacher和location的值取自ClassMap和ClassLocation表,通过FINDROW函数进行匹配。 设置“加入”按钮的可见性。表达式为: =AND(NOT(ISBLANK($[0800 0950 column data])),ROWS(FILTER(MyClass,"MyClass[Time]=% AND MyClass[Class]=% AND MyClass[Weekday]=%",$[0800 0950 column header],$[0800 0950 column data],$[Weekday column data]))=0) ...

September 15, 2021 · 1 min · jiezi

关于css:使用-transform-使大小未知的元素居中

1.程度居中上面举一个例子,父元素外面有一个子元素子元素绝对于父元素定位时,如果不写 left 和 top ,默认定位在父元素的左上角 子元素加上 left:50% 之后,此时的 50% 是指父元素宽度的 50%,也就是 100px,也就是子元素以它本人的右边为基准,平移了 100px 的间隔 因为是以子元素的右边为基准,不算是齐全的程度居中,须要再让子元素向左平移一丢丢(子元素宽度一半的间隔)如果后期不晓得子元素的宽度,就能够用 transform 的 translate 属性了transform 外面的百分比全都是绝对于子元素自身来说的,要跟下面 left 的 50% 辨别开transform:translateX(-50%); 意思就是,子元素向左平移了一段距离,这个间隔是本人宽度的一半上述操作相当于,子元素先向右挪动了父元素的一半,又向左挪动了本人的一半,实现了程度居中 2.垂直居中垂直居中同理,给子元素加上 top:50%,示意,以子元素最下面为基准,平移了 100px 的间隔而后再用transform平移回来,实现垂直居中 3.程度垂直居中程度和垂直方向都须要居中的时候,须要留神,不能 translateX 和 translateY 一起用。会被笼罩 须要用 translate(x,y) 属性,即 translate(-50%,-50%)

September 15, 2021 · 1 min · jiezi

关于css:数据为xlsxexcel表格的实现方法

接口 pending 状态时,切换路由,触发 beforeDestory ,clearTimeout 清理早了,接口申请胜利后还是会开启定时器。接口 pending 导致 beforeDestory 生命周期被绕过,定时器清理能够搭配 路由判断 一块应用;星池starpool简单场景(循环微工作接口查问等),将开启的定时器 timer 拼成数组,存至 session 或全局变量中,循环遍历清理; 等主线程上能够立刻实现的操作实现后,就去工作队列看看哪些不能立刻实现的工作好了没。如果好了也就是他能够立刻返回后果就将它放入主线程上执行取得后果。 行完所有的主线程同步工作后,会执行事件队列内工作。https://www.starpool.cn 但如何执行事件队列内工作呢?采取一下规定。可用来对单个字符串中的屡次匹配后果进行逐条的遍历(包含捕捉到的匹配),而相比之下, String.prototype.match() 只会返回匹配到的后果。

September 14, 2021 · 1 min · jiezi

关于css:CSS资源

1、Layoutit Grid 是一个 CSS Grid 布局生成器地址:https://grid.layoutit.com/ 2、Sarah Drasner 的 CSS 网格生成器地址:https://cssgrid-generator.net... 3、Grid by Example地址:https://gridbyexample.com/ 4、CSS Grid Garden地址:https://cssgridgarden.com/ 5、Grid Malven地址:https://grid.malven.co/ 6、CSS Tricks地址:https://css-tricks.com/snippe... 7、三次贝塞尔地址:https://cubic-bezier.com/#.17,.67,.83,.67 8、CSS 动画 101 电子书地址:https://cssanimation.rocks/cs... 9、 CSS 晚餐地址:https://flukeout.github.io/ 10、弹性盒模式地址:https://www.flexboxpatterns.com/ 11、Flexbox Froggy地址:https://flexboxfroggy.com/ 12、Flexbox Cheatsheet地址:https://darekkay.com/flexbox-... 13、Devinduct Flexbox地址:https://devinduct.com/worksho... 14、Css - tricks地址:https://css-tricks.com/almanac/ 15、CSS 字体栈地址:https://www.cssfontstack.com/ 16、CSS 选择器速查表地址:https://frontend30.com/css-se... 17、CSS 参考地址:https://cssreference.io/ 18、CSS 数据库地址:https://cssdb.org/

September 13, 2021 · 1 min · jiezi

关于css:CSS基础

基本概念CSS(层叠样式表)1.层叠的含意? 款式层叠能够屡次对同一选择器进行款式申明选择器层叠能够用不同选择器对同一个元素进行款式申明文件层叠能够用多个文件进行层叠2.语法 语法一选择器{ 属性名:属性值; /**/;}语法二@charset "UTF-8" //申明字符编码@import url(2.css); //导入额定的css文件@media (min-width:100px) and (max-width:200px){ 语法一}3.CSS查资料相干 MDNCSS ticks张鑫栋4.文档流流动方向: inline元素从左到右,达到最左边才会换行 e.g spanblock元素从上到下,每一个都另起一行 e.g divinline-block元素也是从左到右内联元素: inline宽度为外部inline元素的和,不能用width指定inline高度由line-heigth间接确定,跟height无关块级元素: block默认主动计算宽度,可用width指定block高度由外部文档流元素确定,能够设heightblock默认主动计算宽度,可用width指定 备注:width默认值是auto,留神永远不要自行设置width:100%;inline-block: inline-block联合前两者特点,可用width 备注:宽度默认和inline一样,然而能够自行设置高度;inline-block跟block相似,能够设置height留神:1.不存在内联元素和块级元素,能够说目前这个元素是内联的,或者是块级的。因为这些元素都能够通过display:inline 或者display:block 来批改默认款式2.不要在inline元素外面加上display为block的元素,不然会出问题 overflow溢出: 当内容的高度或高度大于容器的。会产生溢出 备注:当内容的高度或者宽度大于你本人设置的高度或者宽度,内容会产生溢出。能够overflow来设置是否显示滚动条,相干值:scroll(永远显示)、auto(灵便设置)、hidden(暗藏溢出内容)、visible(间接显示溢出内容)脱离文档流:block的高度能够由外部文档流元素决定,换句话说如果这个块外面所在的元素不在这个容器外面,也就是脱离了文档流,那么该容器在计算高度时,就不会计算脱离了文档流的元素设置脱离文档流元素的款式:float:left;position:absolute/fixed额定:纠错形式:border调试法(给元素加border)、开发者查看、开发者工具 5.盒模型 content-box(内容盒):宽度只蕴含内容-内容就是盒子的边界border-box(边框盒):宽度蕴含了border-框架才是盒子的边界content-box width=内容宽度 备注:同理高度也是一样border-box width=内容宽度+padding+border边距重叠:只产生在上下边距 左右边距不会产生重叠magin合并:前提是外面的值雷同,即padding、border。若要扭转边距重叠状况,只须要使外面的值不一样就行。根本单位: px-像素em-绝对于本身font-size的倍数 即font-size*em百分数整数十六进制:e.g #FF6600rgb(0,0,0)/ RGBA色彩 rgba(0,0,0,1)

September 12, 2021 · 1 min · jiezi

关于css:Anki-mobie调用系统内置tts实现朗读-不需要插件ioswindows可用

如何在苹果anki上调用零碎自带的tts?怎么让苹果的anki(anki mobie)朗诵? 问题背景anki反对调用tts的,然而网络上无关常识流传的比拟少,缤纷火条同学作为一个热心肠,觉得很有任务给大家说到说道。本文次要以ios的anki为对象,不增加音频,间接朗诵! 成果也还不错,听起来比拟天然。 awesome的tts尽管大家都在举荐,然而我实用后只能用有道实现我的目标,买个会员吧尽管说也不贵,然而感觉就不是很高兴,当初工夫缓和,不能折腾音频文件了,况且ipad录音后同步可能会呈现不出名的小问题,例如安卓设施莫名多了一个无奈删除的牌组(anki droid)(2021.8月仍有) 集英俊与智慧于一身的缤纷火条,他经常会批改模版,而后经常应用anki的全同步,很消耗工夫,媒体文件大更是一个噩梦,于是他本着节俭空间的想法应用ios零碎自带的tts来解决问题 应用场景例如我下载了一份单词书,分为三个局部,(广告位招租:) *单词 *解释*助记 我让侧面读出 单词和助记忆背面读出答案局部,实现带着我思考,缩小走神景象的产生,也能够歇歇眼睛,不用游走 该办法存在的有余因为应用的办法是{{tts zh_TW:question(字段的名称)}}导致了,在安卓设施上不反对读出(官网不反对,截止到21.9.8)并且最让我不能忍耐的是,他会让我的页面呈现一个新的 反复的 字段 这必定不行,于是俺作为刚刚入门css的小白思考了一下,一个好的方法就呈现了 给这个tts增加一个css管制,不让他显示 实现办法在页面的第一行(侧面) <div class=tts> {{tts zh_TW:问题iii}} {{tts zh_TW:小标题}}</div>css增加上面的内容 .tts { font-size: 0px;padding: 0em 0em 0em 0em;text-indent: 0em;border : 0px solid;position : relative;margin : 0px ;# text-decoration: none;}.replay-button svg { width: 0px; height: 0px; } .replay-button svg circle {fill: blue; } .replay-button svg path { stroke: white; fill: green;}补充两句——-如果你想给你的小喇叭批改一下你能够找到这些语句批改—-: .replay-button svg { width: 0px; height: 0px; } .replay-button svg circle {fill: blue; } .replay-button svg path { stroke: white; fill: green;}至此,胜利实现朗诵性能,如果你须要他重读,只须要按下键盘的R,就能够在ios(ankimobie下面重读) ...

September 12, 2021 · 2 min · jiezi

关于css:前端主流布局系统进阶与实战

download:前端支流布局零碎进阶与实战@RestControllerpublic class GreetingController { //解析application/json@RequestMapping(value = "/hello", method = RequestMethod.POST)public Object getJson(@RequestBody Object obj) { return obj;}} 客户端,原生ajax var xhr = new XMLHttpRequest()xhr.onreadystatechange = function (ev) { console.log(xhr.readyState); if (xhr.readyState === 4){ if (xhr.status === 200){ console.log(xhr.responseText); } else { console.error(xhr.statusText); } }};xhr.open('POST','/hello');xhr.setRequestHeader('Content-Type', 'application/json');xhr.send(JSON.stringify({ name:'zhuwei', age:'25', hobby:'ball'}))阅读器请求详情 1534052079504.png application/x-www-form-urlencoded 服务端,springboot @RestControllerpublic class GreetingController { //解析application/x-www-form-urlencoded@RequestMapping(value = "/helloFormUrl", method = RequestMethod.POST)public String getForm(@RequestParam("name") String name,@RequestParam("age") String age) { return "name="+name+"&"+"age="+age;}} 客户端,html form 表单 ...

September 10, 2021 · 1 min · jiezi

关于css:Script操作BOM和DOM

操作系统类型navigator.language:浏览器设置的语言留神:ipfs矿机navigator的信息能够被用户批改,所以取得的信息不肯定是精确的,不倡议应用这些属性来判断和编写代码screen,而用户的登录信息通常也存在cookie中,这就造成了微小的安全隐患,因为在HTML页面内容许引入第三方的JavaScript代码。如果引入的第三方JavaScript中存在恶意代码,则引入的代码将间接获取到用户的登录信息。比方在天猫登录账户当前,淘宝会主动登录。 析后就是一棵DOM树,要扭转HTML的构造,ipfs矿机就须要通过JavaScript来操作DOM。操作一个DOM节点的操作:更新:更新DOM节点的内容

September 6, 2021 · 1 min · jiezi

关于css:Java文件上传实例说明文件

Map 接口实现,是以 key-value 存储模式存在 ,HashMap 的实现不是同步的,星池starpool这意味着它不是线程平安的。它的 key、value 都能够为 null,此外,HashMap 中的映射不是有序的。实践上的哈希抵触是指计算出来的哈希值一样,导致抵触了,不过在HashMap中的哈希抵触具体是指(n-1)&hash,这个值是hashMap里数组的下标。Jdk8之前的解决办法是通过链表解决,只有hash抵触了,就会将节点增加到链表尾部;jdk8之后的做法是通过链表+红黑树的办法, HashMap在扩容时,都是翻两倍,比方16的容量扩充到32,。HashMap进行扩容的办法是比拟奇妙的,扩容后,星池starpool与原来的下标(n-1)&hash绝对,其实只是多了1bit位。扩容后节点要么是在原来地位,听起来如同很懵,所以还是认真看上面的剖析:

September 6, 2021 · 1 min · jiezi

关于css:display-grid-实现不规则布局

最新想要实现一个不规则布局,通过查找,发现了display:grid 这个属性。 1,根本介绍grid 是一个CSS简写属性,能够用来设置以下属性:显式网格属性 grid-template-rows、grid-template-columns 和 grid-template-areas,隐式网格属性 grid-auto-rows、grid-auto-columns 和 grid-auto-flow,间距属性 grid-column-gap (en-US) 和 grid-row-gap (en-US)。 罕用的属性:grid-template-rows、grid-template-columns 和 grid-template-areas。间距属性:grid-gap 是grid-column-gap 和 grid-row-gap 的合并简写。 2,疾速应用2.1,HTML代码 <div class="parent"> <div v-for="(item,index) in 23" :key="index" :class="`div${index +1} divBorder`"> DIV {{index+1}} </div></div>2.2, 设置 display: grid;grid-template-rows: repeat(auto-fill, 1fr); 示意,主动填充行数,行的高度为1 fr。grid-template-columns: repeat(14,1fr); 示意,占据14列 ,列的宽度为1 fr。grid-gap: 15px; 示意,每个格子的行和列的间距为15px。grid-template-areas: 示意,想要设置的布局。in1~10能够随便更改名称。 .parent { --gridTemplateColumns: 14; grid-template-areas: ". . in3 in3 in3 . . . .in7 in7 . in9 in9" ". . in3 in3 in3 in5 in5 in5 . in7 in7 . in9 in9" "in1 in1 in3 in3 in3 in5 in5 in5 . . in8 in8 . ." "in1 in1 . . .in5 in5 in5 . .in8 in8 in10 in10" "in2 in2 . in4 in4 . . . in6 in6 . . in10 in10" "in2 in2 . in4 in4 . . . in6 in6 . . . .";}.parent { height: 800px; display: grid; grid-template-rows: repeat(auto-fill, 1fr); grid-gap: 15px; grid-template-columns: repeat(14,1fr);}.div1 {grid-area: in1/in1/in1/in1 ; background-color: rgb(228, 161, 15);}.div2 { grid-area: in2/in2/in2/in2 ; background-color: rgb(30, 138, 132);}.div3 { grid-area: in3/in3/in3/in3 ; background-color: rgb(145, 51, 51);}.div4 { grid-area: in4/in4/in4/in4 ; background-color: rgb(179, 199, 105);}.div5 { grid-area: in5/in5/in5/in5 ; background-color: rgb(199, 174, 105);}.div6 { grid-area: in6/in6/in6/in6 ; background-color: rgb(105, 199, 136);}.div7 { grid-area: in7/in7/in7/in7 ; background-color: rgb(122, 105, 199);}.div8 { grid-area: in8/in8/in8/in8 ; background-color: rgb(105, 199, 136);}.div9 { grid-area: in9/in9/in9/in9 ; background-color: rgb(197, 199, 105);}.div10 { grid-area: in10/in10/in10/in10 ; background-color: rgb(197, 199, 105);}最初成果如下: ...

September 4, 2021 · 2 min · jiezi

关于css:CSS-选择器详解

工具与资源核心帮忙开发者更加高效的工作,提供围绕开发者全生命周期的工具与资源https://developer.aliyun.com/... 一、CSS 选择器介绍简介CSS选择器是一种用于匹配HTML文档中元素的模式。关联的款式规定将利用于与选择器模式匹配的元素。选择器是CSS最重要的方面之一,因为它们用于抉择网页上的元素,以便能够设置款式。您能够通过多种形式定义选择器。 二、通用选择器1.简介通用选择器(用*星号或星号示意)与页面上的每个单个元素匹配。如果指标元素上存在其余条件,则能够省略通用选择器。此选择器通常用于从元素中删除默认的边距和填充,以进行疾速测试。 2.案例* { margin: 0; padding: 0; }三、元素类型选择器1.简介元素类型选择器将文档树中元素的每个示例与相应的元素类型名称进行匹配。 2.案例p {color: blue; }四、ID选择器1.简介id选择器用于为单个或惟一元素定义款式规定。ID选择器的定义是一个井号(#),后跟ID值。 2.案例#p{ color: red;}五、class类选择器1.简介类选择器可用于抉择具备class属性的任何HTML元素。具备该类的所有元素将依据定义的规定进行格式化。用一个句号(.)紧随其后的类值定义类选择器。 2.案例.blue {color: blue; }六、后辈选择器1.简介当须要抉择一个元素是另一个元素的后辈时,能够应用这些选择器。例如,如果您只想定位无序列表中蕴含的那些定位点,而不要定位所有定位点元素。 2.案例 ul.menu li a { text-decoration: none; } h1 em { color: green; }七、子选择器1.简介子选择器只能用于抉择作为某些元素的间接子元素的那些元素。子选择器由两个或多个选择器组成,两个选择器之间用大于号(即>)隔开。例如,您能够应用这些选择器在具备多个级别的嵌套列表中抉择列表元素的第一级。 2.案例ul > li { list-style: square;}ul > li ol { list-style: none;}八、相邻兄弟选择器1.简介相邻的同级选择器可用于抉择同级元素。该选择器的语法相似于:E1 + E2,其中E2是选择器的指标。 2.案例 h1 + p { color: blue; font-size: 18px; } ul.task + p { color: #f0f; text-indent: 30px; }九、通用兄弟选择器1.简介通用的同级选择器与相邻的同级选择器(E1 + E2)相似,但不太严格。通用的同级选择器由两个简略的选择器组成,这些选择器由波浪号(∼)字符分隔。能够这样写:E1〜E2,其中E2是选择器的指标。 ...

September 2, 2021 · 1 min · jiezi

关于css:css阶段总结

CSS语言的外围性能就是为特定的属性设定特定的值; CSS规定集: 选择器:抉择了一个或多个须要增加款式的元素(在这个例子中就是 p 元素)。要给不同元素增加款式只须要更改选择器就行了。 申明:一个独自的规定,如 color: red; 用来指定增加款式元素的属性 属性:扭转 HTML 元素款式的路径。CSS 中,由编写人员决定批改哪个属性以扭转规定。 属性的值:在属性的左边,冒号前面即属性的值,它从指定属性的泛滥外观中抉择一个值 CSS的引入形式: 内联款式(行内款式):优先级较高 eg:<div style="color:red">设置文字的色彩为红色</div> 外部样式表:款式与构造拆散 留神点: 1.style标签要写在head标签的开始标签和完结标签之间(也就是和title标签是兄弟关系) 2.style标签中的type属性其实能够不必写, 默认就是type="text/css" 3.设置款式时必须依照固定的格局来设置. key: value;其中:不能省略, 分号大多数状况下也不能省略 eg:`<style type="text/css"> p{ color:red; background-color:yellow; }</style>` 内部样式表:款式与构造拆散,解耦;款式的复用率高(框架:例如bootstrap), 共用,定义好的css文件能够利用到多个页面中。 eg:<link rel="stylesheet" type="text/css" href="文件的门路"/> @import url(),还可通过import形式导入CSS文件 eg:`<style> /*要写在style标签的最后面,否则不会失效 或者间接在内部css文件中间接应用*/@import url('./style.css');</style>` 引入形式的优先级 行内款式>内联款式/内部引入 CSS选择器 标签选择器: 留神点: 1.标签选择器选中的是以后界面中所有的标签, 而不能独自选中某一个标签 2.标签选择器无论标签藏得多深都能选中 3.只有是HTML中的标签就能够作为标签选择器id选择器 :#id名称{ 属性:值; }留神点: 1.每个HTML标签都有一个属性叫做id, 也就是说每个标签都能够设置id 2.在同一个界面中id的名称是不能够反复的 3.在编写id选择器时肯定要在id名称后面加上# 4.id的名称是有肯定的标准的 id的名称只能由字母/数字/下划线,a-z 0-9 _ id名称不能以数字结尾 id名称不能是HTML标签的名称,不能是a h1 img input 5.在企业开发中个别状况下如果仅仅是为了设置款式, 咱们不会应用id ,因为id是留给js应用的类选择器: .类名{ ...

August 31, 2021 · 3 min · jiezi

关于css:关于React-Native使用axios进行网络请求的方法

在前端开发中,可能实现数据申请的形式有很多,如Ajax、jQuery ajax、axios和fetch等。不过,随着技术的倒退,当初可能看到的基本上也就axios和fetch两种。 axios是一个基于Promise的Http网络库,可运行在浏览器端和Node.js中,Vue利用的网络申请根本都是应用它实现的。axios有很多优良的个性,如反对申请的拦挡和响应、勾销申请、JSON主动转换、客户端进攻XSRF等。 应用axios之前,须要先在我的项目中装置axios插件,装置命令如下。 //npm npm install axios --save//yarnyarn add react-native-axios作为一款优良的网络申请库,axios反对根本的GET、POST、DELET和PUT等申请。比方,应用axios进行GET申请时就能够应用axios.get()办法和应用axios(config { … })两种形式,如下所示。 axios.get('/getData', { params: { id: 123}}).then(function (response) { console.log(response);})axios({ method: 'GET', url: '/getData', params: { id: 123,}}).then(function (response) { console.log(response);});能够看到,如果间接应用axios进行网络申请会产生大量的冗余代码,所以在理论开发过程中,还须要对axios申请进行一些封装,以不便前期的应用,如下所示。 能够看到,如果间接应用axios进行网络申请会产生大量的冗余代码,所以在理论开发过程中,还须要对axios申请进行一些封装,以不便前期的应用,如下所示。 const request = axios.create({ transformResponse: [ function (data) { return data;const defaultOptions = { //解决默认配置 url: '', userAgent: 'BIZSTREAM Library', authentication: { integration: { access_token: undefined,class Bizstream { init(options) { this.configuration = {...defaultOptions, ...options};this.base_url = this.configuration.url;this.root_path = '';} post(path, params, data, type = ADMIN_TYPE) { ...

August 30, 2021 · 1 min · jiezi

关于css:移动端常见布局方案

场景一:主动切分子页 实现下面布局:依据容器大小主动装填对话。当一段对话过大时,放大字号以适应容器大小。 场景二:文字区域大小自适应 实现上图布局:容积大小肯定,当内容能够被失常搁置的时候失常解决,当内容超出容器的时候放大字号填满容器。 场景三:每排三个卡片适应 实现上图的布局:3个一排,小于3个从左往右顺次排列。 场景四:内容左,整体居中 实现下面的布局: 在长度长短不一的段落中要放弃所有段落的内容居左显示,段落外的一层容器在页面两头显示。 参考资料: https://zhuanlan.zhihu.com/p/...

August 29, 2021 · 1 min · jiezi

关于css:CSS清除浮动的关键clearboth

置信大家曾经晓得为什么须要浮动以及为什么须要革除浮动。上面次要聊聊革除浮动的原理,要害是说分明clear:both的作用。 一、革除浮动的要害我集体比拟喜爱双伪元素的写法,次要是好记: .clearfix:before,.clearfix:after { content: ””; display: table;}.clearfix:after { clear: both;}.clearfix { *zoom: 1;}其实不论是双伪元素还是单伪元素,都是实际中罕用的做法。所谓W3C的举荐做法反而并不常见,但其原理和伪元素做法是一样的。首先在html中浮动元素前面加一个兄弟元素: <div class="wrapper"> <div class="float"></div> <div class="clear"></div></div>而后对clear设置clear:both: .wrapper { width: 500px; background-color: purple;}.son { float: left; width: 100px; height: 100px; background-color: blue;}.clear { clear: both; background-color: pink;}没有什么花里胡哨,革除浮动就是一行clear:both搞定。 二、clear:both的了解如果你只看了w3school的简略阐明,可能还是不明确clear的意义。 定义和用法clear 属性规定元素的哪一侧不容许其余浮动元素。 阐明clear 属性定义了元素的哪边上不容许呈现浮动元素。在 CSS1 和 CSS2 中,这是通过主动为革除元素(即设置了 clear 属性的元素)减少上外边距实现的。在 CSS2.1 中,会在元素上外边距之上减少革除空间,而外边距自身并不扭转。不管哪一种扭转,最终后果都一样,如果申明为右边或左边革除,会使元素的上外边框边界刚好在该边上浮动元素的下外边距边界之下。 MDN的介绍是: clear CSS 属性指定一个元素是否必须挪动(革除浮动后)到在它之前的浮动元素上面。clear 属性实用于浮动和非浮动元素。emmmm...挪动到上面,这个比拟好了解了。原本是不会挪动到上面的,看MDN的demo截图: 浮动原本是了解决图片和文字围绕问题的,失常状况下文字绕着“图片”(left和right)走就是了,文字所在的div还是依旧忽视浮动的left和right两个div,谁叫你俩脱标了呢。然而,对文字div应用了clear:left之后,文字div右边不容许有浮动元素。怎么个不容许?自个儿挪中央,挪动到div.left上面去。文字div左边还是容许有浮动元素的,所以不用挪动到div.right上面。 这个挪中央怎么了解呢?它是文字所在的div整个挪上来,不是文字扭转盘绕形式。不革除浮动(clear:none)是这样的:(文字所在div用红色框示意) 革除右边浮动(clear:left)是这样的:(文字所在div用红色框示意) 因而,某个元素设置clear革除浮动,就是本身向下挪动,不和浮动的元素产生重叠。在挪动的过程中,clear元素就把父元素高度撑开了。毕竟本身是规范流,父元素能够漠视浮动的孝子,但必须蕴含规范流好孩子。 另外,咱们其实不想看到clear元素,也不心愿它影响其余元素的观感。所以,伪元素代码做法中又搭配了其余的content:""、height:0等属性来暗藏它,最终出现进去clear元素就是一个有width无height的工具人。

August 28, 2021 · 1 min · jiezi

关于css:前端面试每日-31-第864天

明天的知识点 (2021.08.27) —— 第864天 (我也要出题)[html] 你有应用过bgsound标签吗?说说它的作用[css] 你有应用过resize属性吗?它有什么用处?[js] js如何阻止默认事件?[软技能] 你有常常加入同学或敌人团聚吗?《论语》,曾子曰:“吾日三省吾身”(我每天屡次检查本人)。前端面试每日3+1题,以面试题来驱动学习,每天提高一点!让致力成为一种习惯,让奋斗成为一种享受!置信 保持 的力量!!! 欢送在 Issues 和敌人们一起探讨学习! 我的项目地址:前端面试每日3+1【举荐】欢送跟 jsliang 一起折腾前端,零碎整顿前端常识,目前正在折腾 LeetCode,打算买通算法与数据结构的任督二脉。GitHub 地址 微信公众号欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个Star, 同时欢送微信扫码关注 前端剑解 公众号,并退出 “前端学习每日3+1” 微信群互相交换(点击公众号的菜单:交换)。 学习不打烊,充电加油只为遇到更好的本人,365天无节假日,每天早上5点纯手工公布面试题(死磕本人,愉悦大家)。心愿大家在这虚夸的前端圈里,放弃沉着,保持每天花20分钟来学习与思考。在这变幻无穷,类库层出不穷的前端,倡议大家不要等到找工作时,才狂刷题,提倡每日学习!(不忘初心,html、css、javascript才是基石!)欢送大家到Issues交换,激励PR,感激Star,大家有啥好的倡议能够加我微信一起交换探讨! 心愿大家每日去学习与思考,这才达到来这里的目标!!!(不要为了谁而来,要为本人而来!)交换探讨欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个[Star]

August 27, 2021 · 1 min · jiezi

关于css:前端面试每日-31-第863天

明天的知识点 (2021.08.26) —— 第863天 (我也要出题)[html] html5中的meta标签scheme有什么作用?[css] 应用css实现一个曲线门路动画[js] 如何用js实现VR的性能[软技能] 你所在的部门会常常聚餐吗?《论语》,曾子曰:“吾日三省吾身”(我每天屡次检查本人)。前端面试每日3+1题,以面试题来驱动学习,每天提高一点!让致力成为一种习惯,让奋斗成为一种享受!置信 保持 的力量!!! 欢送在 Issues 和敌人们一起探讨学习! 我的项目地址:前端面试每日3+1【举荐】欢送跟 jsliang 一起折腾前端,零碎整顿前端常识,目前正在折腾 LeetCode,打算买通算法与数据结构的任督二脉。GitHub 地址 微信公众号欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个Star, 同时欢送微信扫码关注 前端剑解 公众号,并退出 “前端学习每日3+1” 微信群互相交换(点击公众号的菜单:交换)。 学习不打烊,充电加油只为遇到更好的本人,365天无节假日,每天早上5点纯手工公布面试题(死磕本人,愉悦大家)。心愿大家在这虚夸的前端圈里,放弃沉着,保持每天花20分钟来学习与思考。在这变幻无穷,类库层出不穷的前端,倡议大家不要等到找工作时,才狂刷题,提倡每日学习!(不忘初心,html、css、javascript才是基石!)欢送大家到Issues交换,激励PR,感激Star,大家有啥好的倡议能够加我微信一起交换探讨! 心愿大家每日去学习与思考,这才达到来这里的目标!!!(不要为了谁而来,要为本人而来!)交换探讨欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个[Star]

August 26, 2021 · 1 min · jiezi

关于css:SpringBoot的集成方法案例有没有

Dozer的一些根本应用进行总结。Dozer反对注解、API、XML三种映射配置形式,星池挖服务器XML形式比拟罕用,后面应用的也是XML映射配置形式。XML映射配置中mapping元素的map-id属性能够设置该映射的标识,通过此标识来确定应用该映射关系。 后果 即便在try中产生异样也会执行。 第二种非凡状况: 后果 即便在try中return也会执finally中的后果 第三种非凡状况:如果try或者catch里有 System.exit(0);这段,就不会执行finally了吧 System.exit(status);这个办法是用来完结以后正在运行中的java虚拟机。 finally块执行的前提是try语句块执行 对于星池挖矿服务器外部类而言,它也能够应用拜访控制符润饰,但外部类只能有两种访问控制级别: public 和默认。因为外部类没有处于任何类的外部,也就没有其所在类的外部、所在类的子类两个范畴,因而 private 和 protected 拜访控制符对外部类没有意义。 ( 2 )外部类的上一级程序单元是外部类,它具备 4 个作用域:同一个类( private )、同一个包( protected )和任何地位( public

August 25, 2021 · 1 min · jiezi

关于css:项目的工具类的处理方法有哪些

这性能是相对我的项目中须要的,别通知我你的我的项目还没有适配安卓6.0,适配了就必定会有权限治理,我这里用的是 安卓6.0权限解决在我的项目中的实际,也还能够吧,星池云服务器反正github上的权限治理的开源货色比拟多,感觉适合就ok。封装本人的application和baseActivity类,最大可能的节俭代码,退出mvp的思维来架构。 2.抉择本人喜爱的网络申请框架并且适当正当的进行封装,放慢开发的效率。 3.针对带有滚动控件嵌套有可能产生的滑动抵触,或者显示不全咱们优先自定义一下 个别的网络数据格式是json(咱们就逗:一般数据json,刷卡交易数据xml),所以呢我json格局的用gson封装一下,xml格局临时用的是pull解析后bean对象封装。 6.数据库的封装,对数据苦要求不高的话能够用原生的简略封装一下curd就好了,星池云服务器要求高点的话那就用第三方的好了。 反对同步、异步,而且实现了spdy、http2、websocket协定,api很简洁易用,和volley一样实现了http协定的缓存。简化了网络申请流程,https://www.starpool.cn 同时本人外部对OkHtttp客户端做了封装,同时2.x把之前1.x版本的局部不失当职责都转移给OkHttp了(例如Log,目前用OkHttp的Interceptor来实现)

August 24, 2021 · 1 min · jiezi

关于css:设计稿和前端

内容不断更新中,可能存在知识点谬误,欢送斧正 先来看一些概念:CSS绝对长度单位: px,像素em,元素的字体高度%,百分比rem,根元素的font-sizevm,视窗宽度,1vw=视窗宽度的1%vh,视窗高度,1vh=视窗高度的1%CSS像素px:CSS像素的单位也叫做px。它是图像显示的根本单元,既不是一个确定的物理量,也不是一个点或者小方块,而是一个抽象概念。所以在议论像素时肯定要分明它的上下文! 为了保障浏览体验统一,CSS能够主动在不同设施之间能够调节。即一份代码能够在不同的大小的设施之间显示,并且能够保障浏览体验统一。默认状况下一个CSS像素应该是等于一个物理像素的宽度。然而在高PPI的设施上,CSS像素甚至在默认状态下就相当于多个物理像素的尺寸。比方iPhone的屏幕比照个别的手机屏幕会看起来更精密清晰一些。在浏览器上通过ctrl +/-能够扩充放大屏幕,其实就是屏幕分辩率的调低/调高。ctrl +屏幕放大,分辨率升高。iPhone6,7,8都是两倍屏手机,即一个CSS像素等于2物理像素。iPhone6Plus等是三倍屏手机,一个CSS像素等于3物理像素。如果咱们要以px写,iPhone6为例,设计稿给出一个图片宽高为40px✖️40px。在理论开发中要除以2,宽高要写成20px✖️20px。因为iPhone6是两倍屏手机。早些年开发和UI设计上沟通的问题次要是因为那时都是px的解决方案,须要把尺寸除以2。理论开发中设计师可能会给咱们两种稿,一种是375的iphone6一倍稿,一种是750的web两倍稿。1、 首先我为什么没有打单位,起因是这外面像素的概念十分多,其实有些连培训进去的UI都搞不清楚,因为前端如何做的适配他们并不会晓得,他们只须要关注尺寸和倍数。2、 首先科普几个概念,像素中比拟重要的,逻辑像素pt,物理像素px(pt和px的关系就是1pt外面有几个物理像素点)和viewport像素(浏览器外部对逻辑像素进行再解决的后果,即css中的px,默认css的1px即1物理像素,但会随着设施变动而变动)。逻辑像素和物理像素的比值就是dpr倍,就是常说的几倍图。3、 蓝湖上传设计稿时,假如设计师在750的稿上做的设计,他上传的时候会抉择ios@2x来进行上传。这时开发关上蓝湖看到的ios尺寸是375pt逻辑像素,仍旧是1倍图的样子。咱们关上像素抉择,会变成750px,这时蓝湖中示意的px其实就是物理像素。4、 但如果设计师上传的375的设计稿,他上传的时候会抉择ios@1x来进行上传,这时开发关上蓝湖看到的尺寸还是1倍图的样子。咱们关上像素抉择,是375px,这时的px仍旧是物理像素的概念,但如果要应用必须像素✖️2,蓝湖会帮咱们转化,设置一下。(因为iphone6设施他的逻辑像素就是375✖️667,然而他的物理像素就是750✖️1334)5、 web开发时,前端开发时如何做不同尺寸手机间的一个等比例缩放呢,自己未接触过IOS开发,以后只思考web我的项目和小程序我的项目,采纳对应的rem和rpx,且viewport width=device-width。(viewport width=device-width是什么意思,其实就是让设施的物理宽度等于页面宽度)6、 前面会介绍全局Css vw/vh形式。一、WEB端,rem和flex配合计划其实咱们会纳闷,比方拿到设计师的两倍图,如果把所有对应的px尺寸/2利用到750px/2宽的挪动端页面的css中,后果会如何?其实也是会实现缩放适应的,因为css中的px也是一个绝对长度单位,是依据物理像素/逻辑像素的值变动而变动的一个值。(前面咱们能够试验一下) 然而咱们明天介绍的是用rem来配合flex实现。 rem布局很是简略,其基本原理就是依据屏幕不一样的分辨率,动静批改根字体的大小,让全副的用rem单位的元素跟着屏幕尺寸一块儿缩放,从而达到自适应的成果。设计稿是依照iphone6来设计的(iphone6理论宽度 375px),而设计稿上的宽度是750px,早些年是间接把全副尺寸/2,现在我会这样用rem实现自适应:html { font-size: calc(100vw / 7.5);//除以的7.5是依据设计稿的屏幕宽度来定的,这样750px宽度下根元素字体大小则为750px/7.5=100px=1rem}其中,100vw是设施宽度deviceWidth,这样就实现了不一样设施宽度下,动静批改根字体font-size的大小,好比: deviceWidth = 320,font-size = 320 / 7.5 = 42.6667px //iphone5deviceWidth = 375,font-size = 375 / 7.5 = 50px //iphone678 XdeviceWidth = 414,font-size = 414 / 6.4 = 55.2px //iphone678 plus因而设计思路就是,依据设计稿将html的font-size设置为100px。好比750物理像素的设计稿,就除以7.5。将设计稿的尺寸除以100便可,换算很不便。 优化:像下面这样设计的话,会无限度放大,在大屏上很很差看。解决办法就是给根元素字体大小限度最大最小值,以及body也增长最大最小宽度限度,这样就可能改善用户体验了。 html { //设置根字体大小单位为vw,页面元素的尺寸单位都设为rem,搭配vw和rem,可实现布局依据视口变动而变动 font-size: calc(100vw / 7.5); // 同时,通过Media Queries 限度根元素字体最大最小值 @media screen and (max-width: 320px) { font-size: 64px; } @media screen and (min-width: 540px) { font-size: 108px; }}// body 也增长最大最小宽度限度,防止默认100%宽度的 block 元素追随 body 而过大太小body { max-width: 540px; min-width: 320px;}#app { font-size: initial; //重置页面字体大小复原为浏览器默认16px,不然就显示成50px了}有时咱们拿到的是375iphone6的一倍图,该怎么去设置呢?只有将设计稿的尺寸除以50便可。 ...

August 23, 2021 · 1 min · jiezi

关于css:如何垂直居中一个浮动元素

如何垂直居中一个浮动元素1. 已知元素的高宽 #div1{ background-color:#6699FF; width:200px; height:200px; position: absolute; //父元素须要绝对定位 top: 50%; left: 50%; margin-top:-100px ; //二分之一的 height,width margin-left: -100px; } 2. 未知元素的高宽 #div1{ width: 200px; height: 200px; background-color: #6699FF; margin:auto; position: absolute; //父元素须要绝对定位 left: 0; top: 0; right: 0; bottom: 0; }

August 23, 2021 · 1 min · jiezi

关于css:玩游戏学-CSS哎我就是玩儿

美味值: 口味:气泡冷面 之前在社区中发现了几款不错的学习 CSS 的游戏,体验之后发现不错,和大家分享一下。 对于初学者来说,CSS 繁多的语法可能有些干燥,而且重要的是 W3C 中 CSS 相干文档不仅多,而且浏览体验极差。 https://www.w3.org/TR/?title=css/https://www.w3.org/TR/css-syntax-3/之前也听过一些后端同学吐糟 CSS 比拟难学,就算学会了,长时间不必也会忘记。 其实,咱们无妨利用玩游戏来加深对干燥概念的学习和了解,对于日常开发会应用到的基本操作刻意练习,养成肌肉记忆。边玩边学,它不香吗? 1.Flexbox Froggy传送门Flexbox 青蛙,一共 24 个关卡,每一关都有语法提醒,鼠标 hover 到语法属性上,会显示其所有的属性值。 通过 Flex 语法编程,挪动青蛙到指标荷叶,帮忙你加深记忆。 呱~ 2.Flexbox Defense传送门Flexbox 塔防,一共 12 个关卡的塔防游戏,通过 Flex 语法摆放进攻塔,阻挡敌方小兵通过。 (敌军还有 30 秒达到战场,碾碎他们! ) 3.CSS Diner传送门CSS 晚餐,一共 32 个关卡,由简入难,通过 CSS 选择器语法抉择跳动的盘子来进行通关,帮你相熟和记忆选择器相干的语法。 食堂店小二儿: 捡盘子这事儿我纯熟! 4.Grid Garden传送门Grid 花园,共 28 关,通过 Grid 语法编程,种植,浇灌你本人的胡萝卜园,帮你相熟和记忆 Grid 语法。 5.Flexbox Zombies传送门Flexbox 僵尸,共 12 章节,每一章中都有难度递增的挑战回合。 自带剧情,炫酷的动画和音效,用 Flex 语法打僵尸,强烈推荐体验!!! 6.Grid Critters传送门网格小动物,数百个关卡,须要付费。 你的旅程从神秘的 Grideros 星球开始,你的工作是应用你船上弱小的网格工具来援救外星生物免于灭绝。 ...

August 23, 2021 · 1 min · jiezi

关于css:css中flex弹性布局基础入门学习笔记

flex布局体验传统布局和Flex布局传统布局 兼容性好布局繁琐局限性,不能再挪动端很好的布局Flex布局 操作不便,布局极为简略,挪动端利用很宽泛PC 端浏览器反对状况较差IE 11或更低版本,不反对或仅局部反对倡议1. 如果是PC端页面布局,咱们还是传统布局。2. 如果是挪动端或者不思考兼容性问题的PC端页面布局,咱们还是应用flex弹性布局flex布局原理flex 是 flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性 任何一个容器都能够指定为flex布局。 当咱们为父盒子设置了flex属性后,子元素的float、clear和vertical-align属性将生效总结:flex布局的原理总结就是:就是通过给父盒子增加flex属性,来管制子盒子的地位和排列形式。flex布局父项常见属性 (1)主轴和侧轴 在flex布局中,分为主轴和侧轴两个方向,同样的叫法有行和列、x轴和y轴 * 默认主轴的方向是x轴方向,程度向右 * 默认侧轴的方向是y轴方向,垂直向下 (2)flex-direction 设置主轴的方向(即我的项目的排列形式) 留神:主轴和侧轴是会变动的,就看flex-direction设置睡为主轴,剩下的就是侧轴。 而咱们的子元素就是依据主轴来排列的。属性值阐明row默认值从左到右(主轴为x轴)row-reverse从右到左(主轴为x轴)column从上到下(主轴为y轴)row-reverse从下到上 (主轴为y轴) (3) justify-content 设置主轴上子元素的排列形式 justify-content 属性定义了我的项目在主轴上的排列形式 留神:在设置justify-content属性前,肯定要先确定好主轴是哪个属性值阐明flex-start主轴为x轴 排列形式就是从左向右 主轴是y轴 排列形式就是从上向下flex-end主轴为x轴 排列形式就是从右向左 主轴是y轴 排列形式就是从下向上center在主轴居中对齐(主轴是x轴 程度居中 主轴是y轴 垂直居中)space-around平分残余空间space-between先两边贴边 再平分残余空间(重要) (4) flex-wrap 设置子元素是否换行 默认状况下,子元素都是排在一条线上的(即x轴线或者y轴线)。 然而有时候子元素太多,咱们心愿子元素进行换行,这时候就须要设置flex-wrap属性了属性值阐明nowrap默认值 不换行wrap换行 (5)align-items 设置侧轴上的子元素排列形式(单行 ) 属性值阐明flex-start默认值 从上到下flex-end从下到上center挤在一起居中(垂直居中)stretch拉伸 (6)align-content 设置侧轴上的子元素的排列形式(多行) 留神:align-content属性只能用于子项呈现换行的状况下,在单行的状况下是没有成果的属性值阐明flex-start默认值在侧轴的头部开始排列flex-end在侧轴的尾部开始排列center在侧轴两头显示space-around子项在侧轴平分残余空间space-between子项在侧轴先散布在中间,再平分残余空间stretch设置子项元素高度平分父元素高度 ...

August 23, 2021 · 1 min · jiezi

关于css:渲染优化之CSS-Containment

引言在开始介绍明天的配角 CSS Containment 之前,咱们须要理解一些前置常识回流和重绘,不便咱们了解以及利用的场景。 简略回顾下回流和重绘回流(Reflow):当浏览器必须重新处理和绘制局部或全副页面时,回流就会产生,例如元素的规模尺寸,布局,暗藏等扭转而须要从新构建。重绘(Repaint):当扭转元素的局部属性而不影响布局时,重绘就会产生。例如扭转元素的背景色彩、字体色彩等。回流会造成什么Reflows are very expensive in terms of performance, and is one of the main causes of slow DOM scripts, In many cases, they are equivalent to laying out the entire page again.通过翻译,咱们能够晓得,回流在性能方面耗费十分大,是很多 DOM 加载慢的起因之一。在许多状况下,它们相当于再次渲染整个页面。 接下来,来看看有哪些行为会触发回流/重绘。 触发回流/重绘增加,删除,更新 DOM 节点时会产生回流设置元素的属性为display:none 时产生回流设置元素的属性visibility: hidden 时产生重绘DOM 节点上存在动画属性也将触发回流调整窗口的大小将触发回流font-style 更改字体格调会扭转元素的几何形态。 这意味着它可能会影响页面上其余元素的地位或大小,触发回流增加或删除款式文件将导致回流/重绘通过 JavaScript 获取元素的大小等,因为须要确保获取到的值为最新的,浏览器都会先执行一次回流来保障值的正确。例如 offsetXXX_、_clientXXX 和 scrollXXX 等重绘回流优化计划晓得了触发回流/重绘的起因,那么就能依据这些起因,制订相应的优化计划,如下。 防止应用触发重绘回流的 CSS 属性。尽量减少 JS 操作批改 DOM 的 CSS 次数。将频繁重绘回流的 DOM 元素独自作为一个独立图层,那么这个 DOM 元素的重绘和回流影响只会在这个图层中。通过了优化后,回流和重绘的次数曾经缩小,然而不可避免的,因为各种起因,还是会产生回流和重绘。 试想一下,有一个比较复杂的页面,当用户挪动鼠标到一个元素上,触发这个元素hover,这个hover的成果是使这个元素宽高产生扭转(width、height),当元素的宽高产生扭转时,浏览器须要思考到所有元素,是否产生了相应的更改,所以浏览器须要对整个页面进行从新布局,而实际上扭转的可能只有页面的一小部分,页面大部分内容是放弃不变的。这对于性能来说,无疑是非常差的。 那么有没有一种方法,可能让浏览器进行部分的回流重绘,从而达到优化性能的目标呢?或者说,缩小回流时产生的性能耗费。答案是有的,就是明天所要意识的 CSS Containment ...

August 19, 2021 · 3 min · jiezi