城市直播房产教育博客汽车
投稿投诉
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

学前端到了CSS阶段,你一定要掌握这9大防御式开发技能

3月19日 飞仙轩投稿
  一、什么是防御式编程
  防御性编程是一种细致、谨慎的编程方法(习惯)。我们在写代码时常会有以防万一的心态,把以防万一有可能出现的情况提前考虑进去,规避以免以防万一出现带来的问题。
  应用防御性编程技术,你可以侦测到可能被忽略的错误,防止可能会导致灾难性后果的小毛病的出现,在时间的运行过程中为你节约大量的调试时间。
  比如我们在写下面这个效果时,如果只是按设计师设计效果来开发,我们就不会考虑标题内容过长的问题。但是在实际的应用中,数据是从后台加载而来,标题的字数就有可能过长,过长之后就会导致标题溢出折行的效果如下图,带来不好的体验。
  如果站在防御式编程的角度来思考,那我们就会提前把这种问题规避掉。如果标题过长,我们可以使用。。。省略号来处理。而不是等到项目上线,实际问题发生时,再来修改代码。
  二、防御式CSS
  防御式CSS是一个片段的集合,可以帮助我们规避以防万一产生的问题。
  我们在CSS布局时,是按照设计师的效果来开发的,但是实际的网页内容是动态的,网页上的内容是可以改变的,如:文字数量,图片尺寸、窗口大小等,再加上用户的一些意想不到的行为和运行环境,从而造成CSS布局的效果并没有按照我们预期的效果显示。
  我们可以通过添加某些CSS代码,来避免这种情况带来的问题。防御式CSS是实现项目稳定性建设重要但极其容易忽视的一环。
  接下来我们分享9个应用场景下,具有防御式的CSS代码。三、9个具有防御式的CSS代码:场景一:单行文本过长
  我们设计时的理想效果是标题文字不超过8个字,正好显示完整。但实际应用时,有可能标题内容过长造成换行显示。我们可以添加文字溢出显示。。省略号来解决。
  stylebody,h3{margin:0;padding:0;}。box{width:150height:150position:margin:40}。boxh3{height:30lineheight:30fontweight:100;width:100;backgroundcolor:rgba(0,0,0,0。5);fontsize:16color:position:bottom:0;textalign:以防万一,标题过长时,用。。。省略号显示whitespace:overflow:textoverflow:}stylebodyimgsrcc2021imgdataimg。jpgdatasrcimgq01。71396。combleh6961f87cc868b61b。jpgalth3以防万一标题过长产生的问题h3body2、场景二:类别标签中文本过长
  在这个效果中,我们并不希望标签延伸到最右侧,我们希望内容过长时,可以在一定的长度时就折行显示。我们可以通过添maxwidth属性来避免这种以防万一的问题。
  同类的应用还有minwidth,在此就不演示了
  style。box{width:250height:250position:}。boxspan{position:backgroundcolor:rgba(119,245,197,0。8);lineheight:1。3;fontsize:12padding:5px10borderradius:050px50px0left:0top:5以防万一标签内容过长,控制最大宽度,内容过多折行显示maxwidth:70;}styleheadbodyimgsrcc2021imgdataimg。jpgdatasrcimgq01。71396。combleh44272462fcbe79bd。jpgaltspan植物奶油巧克力草莓榴莲花生芝麻小米鸡蛋spanbody3、场景三:防止图片拉伸或挤压
  我们预想的是用户按1:1的大小来上传头像图片,但实际用户上传的头像比例是五花八门,就会造成图片被拉伸或挤压变形。我们可以添加Objectfit:cover来等比例裁剪图片尺寸,这样图片就不会被拉伸或压缩,不过会有一部分图片被裁剪掉。
  style。box{width:200height:200borderradius:50;overflow:}。boximg{width:100;height:100;保持图片原有尺寸来裁剪objectfit:}stylebodyimgsrcc2021imgdataimg。jpgdatasrcimgq01。71396。combleha98589eb3db8a99f。jpgaltbody4、场景四:图片加载失败,文字显示问题
  当图片上有文字时,如果图片加载失败,而外层容器的背景色和文字颜色接近,那么文字的展示效果就不理想;此时我们可以给图片加上对应的背景色。
  这个效果大家只需做个了解就好。通常如果图片上有文字,设计师在设计效果图时都会在图片和文字中间加上一层黑色的半透明遮罩层,这样即使图片加载不出来,也不影响文字的展示效果。style。box{width:250height:156position:}。boximg{width:100;height:100;objectfit:以防万一图片加载失败,加上背景色,保证文字能正常显示backgroundcolor:666;}。boxh3{width:100;fontsize:20textalign:position:top:40color:}stylebodyimgsrcc2021imgdataimg。jpgdatasrcimgq01。71396。combleh4c4b36969dcb2a28。jpgalth3美丽的风景图h3body5、场景五:必要时显示滚动条
  在内容比较长的情况下,可以通过设置overflowy控制滚动条是否展示。但是这里更推荐将overflowy的值设置为auto。如果你将overflowy显式设置为scroll时,不管容器内容长短,滚动条都会展示出来,这种体验是不好的
  style。box{width:160padding:20height:200backgroundcolor:lineheight:2;borderradius:20}。box。content{paddingright:10maxheight:100;以防万一,用户内容不足时,不需要显示滚动条,只有内容溢出时才显示overflowy:}整个滚动条。content::webkitscrollbar{width:5padding:0px20}滚动条轨道。content::webkitscrollbartrack{borderradius:10backgroundcolor:000;margin:20px0}滚动条上的滚动滑块。content::webkitscrollbarthumb{width:14borderradius:10backgroundcolor:}stylebody在内容比较长的情况下,可以通过设置overflowy控制滚动条是否展示。但是这里更推荐将body6、场景六:预留滚动条空间,避免重排
  当内容不足时不会出现滚动条,文字占据的宽度要宽些。当内容溢出出现滚动条时,因为滚动条要占据一部分空间,则会造成文字占据的空间变窄,因而会造成重排。我们可以元素添加scrollbargutter:来避免这个问题。
  scrollbargutter属性有三个值
  属性值
  描述
  auto
  就是默认表现。没有滚动条的时候,内容尽可能占据宽度,有了滚动条,可用宽度减小
  stable
  如果overflow属性计算值不是visible,则提前预留好空白区域,这样滚动条出现的时候,整个结构和布局都是稳定的。
  bothedges
  让容器左右两侧同时预留好空白区域,目的是让局部绝对居中对称。
  没有加scrollbargutter时,未出现滚动条和出现滚动条之间的差别
  加上scrollbargutter:后,出现滚动条和没有出现滚动,前后文字显示效果没有差异
  style。box{width:160padding:20height:200backgroundcolor:lineheight:2;borderradius:20}。box。content{maxheight:100;以防万一,用户内容不足时,不需要显示滚动条,只有内容溢出时才显示overflowy:预留好滚动条位置,必免引起重排scrollbargutter:}。content::webkitscrollbar{width:10}。content::webkitscrollbartrack{borderradius:10backgroundcolor:000;margin:20px0}。content::webkitscrollbarthumb{width:14borderradius:10backgroundcolor:}stylebody当内容不足时不会出现滚动条,文字占据的宽度要宽些。当内容溢出出现滚动条时,因为滚动条要占据一部分空间,则会造成文字占据的空间变窄,因而会造成重排。body7、场景七:锁定滚动链
  我们会发现当子元素滚动到顶部或底部继续滚动滚轮时,会导致父元素的滚动,但这种行为有时会影响页面体验。在子元素上应用overscrollbehavior:contain就可以禁止掉这一行为。
  stylebody{height:2000}。box{height:400width:200margin:0overflowy:backgroundcolor:当滚动到滚动条底部和顶部时,会触发父元素的滚动条滚动overscrollbehaviory:}stylebodyp1p2p3p4p5p6p7p8p9p10p11p12p13p14p15p16p17p18p19p20p21p22p23p24p25p26p27p28p29p30p31p32body8、场景八:flex布局中,元素使用spacebetween最后一行两边分布的问题?
  如果我们每一行显示的个数为n,那我们可以最后一行子项的后面加上n2个span元素,span元素的宽度和其它子项元素宽度一样,但不用设置高度。为什么是添加n2个span元素呢?
  当最后一行只有1个子元素时,他会默认靠左,不用处理
  当最后一行子元素正好时,我们就不用关心这个问题。
  所以要去掉这两种情况,只需要加n2个span元素就好
  style。container{width:500display:弹性布局justifycontent:两端对齐flexwrap:超出部分换行}。item{width:120height:100backgroundcolor:margintop:10}。containerspan{width:120span宽和子项宽一样}styleheadbody1234567!以防万一,子项个数不够,最后一排出现两端对齐,达不到预期效果spanspanspanspanbody9、场景九:grid网格中的响应式断行效果的处理
  当我们想尽可能多的在一行显示子项的个数时,有可能会出现子项个数不满一行的情况。那这个时候利用网格布局,使用autofill和autofit就会是两个完全不同的效果。autofill:网格的最大重复次数(正整数),如果有剩余空间,则会保留剩余空间,而不改变网格项目的宽度。autofit:网格的最大重复次数(正整数),如果有剩余空间,网格项平分剩余空间来扩展自己的宽度。
  以下情况只会出现在子项内容不能占满一行时。也就是说万一内容不能占满一行,则使用autofill就会出现空白问题。我们把autofill改成autofit就解决了这个问题
  style。container{width:100;display:gridtemplatecolumns:repeat(autofill,minmax(250px,1fr));以防万一,子项不足占据一行时gridtemplatecolumns:repeat(autofit,minmax(250px,1fr));gridtemplaterows:250gridautoflow:gridautorows:250gap:10}。container。item:nthchild(even){backgroundcolor:}。container。item:nthchild(odd){backgroundcolor:}stylebodybody
  为帮助到一部分同学不走弯路,真正达到一线互联网大厂前端项目研发要求,首次实力宠粉,打造了《30天挑战学习计划》,内容如下:
  HTMLHTML5,CSSCSS3,JavaScript,真实企业项目开发,云服务器部署上线,从入门到精通PC端项目开发(1个)移动WebApp开发(2个)多端响应式开发(1个)
  共4大完整的项目开发!一行一行代码带领实践开发,实际企业开发怎么做我们就是怎么做。从学习一开始就进入工作状态,省得浪费时间。
  从学习一开始就同步使用Git进行项目代码的版本的管理,Markdown记录学习笔记,包括真实大厂项目的开发标准和设计规范,命名规范,项目代码规范,SEO优化规范
  从蓝湖UI设计稿到PC端,移动端,多端响应式开发项目开发真机调试,云服务部署上线;Linux环境下的Nginx部署,Nginx性能优化;Gzip压缩,HTTPS加密协议,域名服务器备案,解析;企业项目域名跳转的终极解决方案,多网站、多系统部署;使用使用Git在线项目部署;
  这些内容在《30天挑战学习计划》中每一个细节都有讲到,包含视频图文教程项目资料素材等。只为实力宠粉,真正一次掌握企业项目开发必备技能,不走弯路!
  过程中【不涉及】任何费用和利益,非诚勿扰。
  点击进入:30天挑战学习计划Web前端从入门到实战arry老师的博客艾编程
投诉 评论 转载

王慧文与AI架构公司一流科技达成并购意向,搜狗输入法之父加入文Blink162、Congerry距离王慧文为创建中国版OpenAI广发英雄帖(前情回顾),已经过去一个半月了,光年之外旗下汇聚了多少英雄?当时王慧文在英雄帖提到……79年,87岁的叶剑英肺部恶化,钟南山被紧急召去北京,创下了大家都知道,在全国抗战开始的时候,举国上下有很多很多人加入正义的队伍。这些人里有男有女,有老有少,很多年龄比较大的人在战斗的时候也不含糊。也有很多人甚至还没有成年就要跟着部队去……孩子爱吸舌头有哪些危害,要不要矫正孩子刚刚出生的时候就发现经常吸允舌头,还以为是想吸奶的动作,后面发现,想睡觉,和睡熟前一直吸着舌头才能睡着。家里老人看到就说这样子,以后嘴唇变大,不过还小也没办法,一岁多……穿越65年时光,看中国火箭逐梦苍穹视频加载中。。。2022年11月16日是中国运载火箭技术研究院成立65周年的日子。从1957年建院起,我国运载火箭事业从无到有,从弱到强,不断向前发展。在这充满挑战与坎坷……车购税优惠政策立竿见影三季度车市持续高增长21世纪经济报道记者左茂轩北京报道10月11日,中国汽车工业协会(下称中汽协)发布数据显示,9月,汽车产销分别达到267。2万辆和261万辆,同比增长28。1和25。7;……在保定,哪里可以学习羊杂汤和牛肉罩饼的做法?我觉得在当今的商品社会,你在保定学羊杂汤和牛肉罩饼肯定有教的,这两们虽然有技术,但是技术含量都不是很大,我是保定人,虽然我不知道那里有人教,但是你去店里直接找老板谈就行了。……惊艳了时光的13位香港小姐,邱淑贞仅第4,谁是你心中第一1946年6月23日,香港小姐第一届选美在北角丽池花园夜总会举行。那时,战争刚刚结束,香港百废待兴,为了刺激娱乐产业的发展,有青帮背景的李裁法从国外引进了选美比赛。……阵容强大,故事温暖,谢谢你医生演绎不一样的医疗剧近几年,医疗剧大火,受到了影迷们的广泛喜爱。因此,由嘉行传媒出品,杨幂、白宇领衔主演,奚美娟、张志坚、游本昌、刘佳、吴玉芳、白志迪、乔振宇、范雷特别出演,王一楠、李解、李……1949年毛主席未全票当选国家主席,有一人没给他投票,此人是阅读此文前,麻烦您点击一下关注,既方便您进行讨论与分享,又给您带来不一样的参与感,感谢您的支持!1949年9月30日,是中国人民政治协商会议第一届会议的最后一天,选举中华……国产剧的浮沉史这5个畸形观念,正在国产剧中野蛮生长文丨2号探秘人编辑丨2号探秘人影视剧就是全国最封建的地方。华东师范大学老师毛尖在某次演讲中一针见血道出国产剧的现状。不知道你们有没有发现,在国产的武侠剧……学前端到了CSS阶段,你一定要掌握这9大防御式开发技能一、什么是防御式编程防御性编程是一种细致、谨慎的编程方法(习惯)。我们在写代码时常会有以防万一的心态,把以防万一有可能出现的情况提前考虑进去,规避以免以防万一出现带来的问……社招警察好考吗?难度也不小,所谓好考不好考看拿什么来对比,就对比公务员其他考试难度确实相对少那么一点。我是辅警,通过市里辅警考试进来,现在也一直努力备考公务员,说一下自己的经历,仅供参考……
新栽的花椒树为什么总不发芽这些原因一定要知道男生宽脸适合什么发型轻松瘦脸明朝迁都北京,为啥还在南京留下六部?预备北京守不住跑回来用食品科学与工程生物技术生物工程环境科学,四个专业应该选哪个好收藏!望牛墩医院全面恢复诊疗,全新医疗服务指南来了旧光盘都别扔利用起来作用真强大手工2018年哪些军校招高中毕业生?时常造句用时常造句大全长江春潮通江达海,打造更具特色的水运江苏港口群高合充电路书拥抱太湖环线山川美景助力高品质民生人大代表在行动丨精心组织组团帮扶倾情帮扶解民困小儿扭伤的急救措施爸爸妈妈必须要知道

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找