记录开发中有关style的几个坑|青训营笔记

53 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天

20230204 outline会在focus时由浏览器控制自动出现

发现这个坑,如下图,图中的outline:none 被挡住了

d4e83335-86a2-450b-ae18-d24c84ae428f.jpeg

问题描述:我明明把border设置成了red,为什么focus的主要按钮还是有蓝色边框?

后经将border 的宽度调为5px看到了红色的边框,发现该蓝色框实为outline

outline vs border

outline 不改变元素的尺寸大小和位置

而border则会占据元素的尺寸

outline 的效果将随元素的 focus 而自动出现,相应的由 blur 而自动消失。这些都是浏览器的默认行为,无需JavaScript配合CSS来控制。

而如果希望达到:focus 没有outline的效果,只需要加一句

outline: none;

即可。

20230210 点击切换loading后按钮位置会改变

这个问题出现在开发button组件loading属性时,点击后会与非loading状态的其他按钮(同一行)的上下位置不统一

解决方法:在父级元素div 添加 style="display: flex;"

Flex 布局语法教程 | 菜鸟教程

注意,设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。

20230214 opacity不透明度会继承,容器内元素即使重新设定opacity:1仍然会继承容器的不透明度

解决方法:将容器内元素放到容器外,或使用rgba()函数

rgba()函数可以设置颜色透明度,语法如下:

RGBA(R,G,B,A)

取值:

  • R: 红色值。正整数 | 百分数
  • G: 绿色值。正整数 | 百分数
  • B: 蓝色值。正整数 | 百分数
  • A: Alpha透明度。取值0~1之间。

参考链接