CSStricks-border+transparent
时间:2023-03-30 18:27:15
CSS
简介出门忘了带电源线,等快递到了终于可以继续文章了。终于拿到面试机会了,面试官人很好,可惜我当时一头雾水,错过了一个很好的机会:面试官:Barbara...我:嗯,啊,这个,那个(吱吱)……面试官:你会画三角形吗?我:我主要用到border和transparent这两个属性。将其余的边设置为透明,然后将相应的方向设置为需要的颜色。一般多采用等边、等腰的装饰。面试官:那你知道不等边三角形怎么写吗?我:不就是这么写的(陷入迷茫状态),然后赶紧说要用伪元素来模拟吗?面试官:可以单独设置高度。我:...效果展示:例子源码,在线例子三角形原理可以通过图形展示更清楚的展示区别:1.简单的正方形代码:
$square-size=100px.squarewidth$square-sizeheight$square-sizeborder5pxsolidborder-color#893615#E76B56#A72310#0C1F22效果图:加强效果:$square-size=100px$border-size=60px.squarewidth$square-sizeheight$square-sizeborder$border-sizesolidborder-color#893615#E76B56#A72310#0C1F22你可以清楚地看到每一边都是一个梯形。2、勾选正方形,打开控制台:可以看到中间的空白就是我们设置的100*100,这是我们的盒模型(box-sizing)为content-box的结果。然后我们设置为border-box,查看结果:从border-box看,由于两边border的大小都是60,所以60*2=120>100,里面的宽度是0。3.正方形defaultboxmodel的上文已经说明,当正方形的尺寸被压缩为0时,会得到一个三角形的效果。然后在此处使用默认框模型创建一个三角形:$square-size=0$border-size=60px.squarewidth$square-sizeheight$square-sizeborder$border-sizesolidborder-color#893615#E76B56#A72310#0C1F224。隐藏不必要的边缘最后,生成三角形(保留目标相反方向的颜色),仅举几个例子。三角形打开角度向上:$square-size=0$border-size=60px.trianglewidth$square-sizeheight$square-sizeborder$border-sizesolidtransparentborder-bottom-color#A72310三角形打开角度向右:$square-size=0$border-size=60px.trianglewidth$square-sizeheight$square-sizeborder$border-sizesolidtransparentborder-left-color#0C1F22三角形向左上角张开的角度:$square-size=0$border-size=60px.trianglewidth$square-sizeheight$square-sizeborder$border-sizesolidtransparentborder-left-color#0C1F22border-top-color#893615三角形生成器必须考虑如何每次写三角形都很麻烦,将它们可视化并一次创建一个三角形,只需单击一下就很棒。友情提示:以下参考链接参考Vue相关概念0.基本结构settings_direction">
三角形方向三角形类型三角形颜色效果图
代码
.generate-triangledisplayflex.titlemargin0padding0.settingsflex-basis30%.exhibitionflexautobackground-color#cdd1d3//silverfishwhite.settingsdisplayflexflex-directioncolumnpadding-top12px.settings_direction,.settings_type,.settings_color显示flexjustify-contentcenter.settings_type,.settings_colorflex-basis20%.settings_directionflexauto.exhibition显示flexflex-directioncolumnpadding-top12px.rendering,.code显示centerflexcontentcodejustifyerflex-basis35%.renderingflexautorendering:1.Directionselection开始写三角形的时候,需要确定三角形的方向,比如up,down,或者uptotheleft这时候我们需要一个点击的子组件来触发效果: 导出默认值{name:"triangle-direction",data:()=>{return{active:"oblique0",directions:[{name:"oblique",single:["top","right","bottom","}left"]},{name:"positive",single:["top-left","top-right","bottom-right","bottom-left"]}]};},mounted(){这个。changeDirection("top","oblique0");},方法:{changeDirection(val,index){this.active=in敏捷;this.$emit("getDirection",val);}}};效果图:2.类型选择这里三角形分为等边三角形、等腰三角形、不等边三角形三种类型选择组件依赖方向组件,需要校验传入的值,不同的值会有不同的输出结果。如上所述,斜三角形由两个边框组成,因此该类型不会提供等边形式:
{{type.zh}} exportdefault{name:"triangle-type",data:()=>{return{active:0,equilateral:false,triangleTypes:[{en:"equilateral",zh:"equilateral"},{en:"isosceles",zh:"isosceles"},{en:"scalene",zh:"Scale"}]};},props:{type:{type:String,validator:function(val){return["top","right","left","bottom","top-left","top-right","左下角”,“右下角”].includes(val);}}},watch:{type:{handler:function(val){constisPositive=["top","right","left","bottom"].包括(值);这。等边=正;if(isPositive){this.changeType('等边',0);}else{this.changeType('isosceles',1);}},立即:true}},方法:{changeType(item,index){this.active=index;this.$emit("getType",item);}}};效果图:3.颜色选择现在input提供了type="color"的选项,做一个颜色选择器还是很简单的。对于输入,你可以使用前面提到的CSS技巧:checkbox+label+selector来隐藏它: