css 文字投影-CSS编码方式

这本书介绍的方式主要是使用CSS3的知识,其实和写法是兼容的,大家可以自己查一下

查询属性的支持级别条目

浏览器前缀处理工具Autoprefixer

CSS编码方式

1. 减少代码重复

2.了解视觉差异

3.响应式页面设计

4. 正确使用缩写

5.合理使用预处理器

第二章、背景与边框 1、半透明边框

border: 10px solid hsla(0,0%,100%,.5);
background: white;
background-clip: padding-box;

background-clip属性指定背景的轮廓区域、背景颜色。

2. 多重边界

box-shadow:可接受第四个参数字段,水平倾斜、垂直倾斜、模糊程度、扩展直径

//可用这个方法实现多个边框,但是如果边框是虚线那就不行了
box-shadow: 0 0 0 10px #eee,0 0 0 15px #ddd,0 0 0 20px #ccc;

3.灵活的背景定位

background-position:运行指定背景图像距任意角的偏移量。

background-position: right 20px bottom 20px; 

background-origin:修改背景图片的background-position定位标准。 默认为padding-box;

background-origin:border-box/padding-box/content-box;

background-position: calc(100% - 10px) calc(100% - 10px);

4、边框圆角

为了达到上图的疗效,我们习惯用两个袋子来实现。 下面介绍如何利用袋子来达到上述效果。

background-color: pink;//设置盒子背景颜色
border-radius: 10px;//设置圆角
box-shadow: 0 0 0 10px #655;//设置盒子阴影
outline: 11px solid #655;//设置盒子outline,一般设置比圆角,阴影大一点,为了更好的效果

5.条纹背景

Linear-gradient:直线过渡

Radial-gradient:圆形过渡,从中心开始,颜色过渡

background: linear-gradient(to bottom,#eee 30%,#ddd 30%);
background: linear-gradient(to bottom,#eee 30%,#ddd 0);
background-size: 100% 15px;

斜白(此仅适用于45°倾斜)

background: linear-gradient(45deg,#fb2 25%,#58a 0,#58a 50%,#fb2 0,#fb2 75%,#58a 0);
background-size: 50px 50px;

更好的对角白色

background: repeating-linear-gradient(45deg, #fb3, #fb3 15px, #58a 0,#58a 30px);

灵活的同色系白色

background: #58a;
background-image: repeating-linear-gradient(30deg,hsla(0,0%,100%,.1),hsla(0,0%,100%,.1) 15px,transparent 0, transparent 30px);

6.复杂的背景图案

网格

background: white;
background-image: 
linear-gradient(90deg,rgba(200,0,0,.5) 50%,transparent 0),
linear-gradient(rgba(200,0,0,.5) 50%,transparent 0);
background-size: 30px 30px;

background: #58a;
background-image: 
linear-gradient(white 1px,transparent 0),
linear-gradient(90deg, white 1px,transparent 0);
background-size: 30px 30px;

background: #58a;
background-image:
        linear-gradient(white 2px,transparent 0),
        linear-gradient(90deg, white 2px,transparent 0),
        linear-gradient(hsla(0,0%,100%,.3) 1px,transparent 0),
        linear-gradient(90deg,hsla(0,0%,100%,.3) 1px,transparent 0);
background-size: 75px 75px,75px 75px,15px 15px,15px 15px;

波尔卡圆点

棋盘

background: conic-gradient(red,yellow,lime,aqua,blue,fuchsia,red );

投影文字灯_css 文字投影_投影文字模糊怎么调

7. 伪随机背景

获得不同颜色和长度的垂直下摆。

8. 连续图像边框

border-image的工作原理是九宫格拉伸法,将图像切割成9块,然后将它们应用到元素边框的相关边和角上。

蚂蚁行军的疗效

第 3 章,形状 9,自适应椭圆

当任意两个相邻圆角的直径之和超过边框框的大小时,用户代理必须按比例减小每个边框直径使用的值,直到它们不再相互重叠。

border-radius 鲜为人知,可以分别指定水平和垂直直径,两个值可以用斜杠 / 分隔

半椭圆

四分之一椭圆

10.平行四边形

嵌套元素方案:使用两个袋子,外层袋子使用skew()变形,内容反转使用skew()变形(不推荐)

伪元素方案:将所有样式应用到伪元素上,然后修改伪元素。

这个想法还可以应用到其他疗效上:

例如实现IE8以下的多背景

边框圆角

11. 菱形图像

基于变体的方法

剪切路径方案

12、切角的疗效

使用接受角度作为方向的渐变效果,然后使用线性渐变

四个角

圆弧倒角

13. 梯形图页签

通过改变属性而不是内部行距来改变它的规格,以避免在不支持3D的浏览器中出现奇怪的样式。 已经证明,垂直方向缩放1.3倍可以弥补其高度的收缩

通过将transform-origin更改为左下或右下,可以获得两侧有斜度或两侧有斜度的标签。 但底边的角度取决于元件的间距。 如果长度不同,则很难获得斜率一致的矩形。 宽度变化不大,效果很好。

14.简单的饼图

投影文字灯_投影文字模糊怎么调_css 文字投影

使用CSS动画实现饼图从0%变化到100%的动画。

SVG解决方案

角渐变

第四章视觉效果15、单边投影

单面投影:使用box-shadow的第四个厚度参数,扩展直径通常设置为模糊直径的相反值

box-shadow: 0 5px 4px -4px black;

邻边投影:扩展直径通常设置为模糊直径相反值的一半,水平和垂直连接距离通常小于或等于模糊直径的一半

box-shadow: 3px 3px 6px -3px black;

双边投影:四个方向的扩张直径相等。唯一的办法是使用两个投影(每侧一个)来实现

box-shadow: 5px 0 5px -5px black,
            -5px 0 5px -5px black;

16. 不规则投影

利用SVG引入的滤镜新属性,可以使用一些函数来实现指定的滤镜效果。 如blur()、grayscale()、drop-shadow()

drop-shadow():与box-shadow基本相同,但不能接受第四个扩展参数,不包含insert关键字,不支持冒号分隔的多层投影语句。

能顺利降解。 可以附加 SVG 过滤器以获得更好的支持。 您可以在滤镜效果模型中找到每个滤镜对应的SVG滤镜版本。 还可以将 SVG 过滤器与简化的 CSS 过滤器结合起来,并让级联机制确定应用哪些行。

filter: url(drop-shadow.svg#drop-shadow);
filter: drop-shadow(2px 2px 5px rgba(0,0,0,.5));

drop-shadow() 的本质是在任何不透明的部分投射阴影。 文字也不例外。 text-shadow: none 不可取消。如果设置了文字投影,也会投影在投影上

17、染色功效

使用伪元素为图像添加一层遮罩

过滤器解决方案

sepia():减少去饱和橙黄色染色效果对图片的影响,几乎所有像素的色调值都会收敛到35~40

saturate():增加每个像素的饱和度

hue-rotate():将每个像素的色调倾斜指定的程度。

filter: sepia(1) saturate(4) hue-rotate(295deg);

基于混合模式的解决方案

第一种方法:盒子包裹图片,盒子背景色设置为你想要的主色,图片设置为混合模式

第二种方法:用一个包来设置背景,第一层是要染色的图片,第二层是你想要的主色

18、磨砂玻璃的功效

然而,我们想要模糊文本层覆盖的图像区域。

直接使用滤镜:blur(5px); 也会模糊文本。

解决方案:处理一个伪元素并将其放置在元素顶部,其背景将与背景图像无缝匹配。 如果浏览器不支持过滤器,您看到的结果将是上图。

19.角度疗效

以前:使用伪元素实现。 有限制,背景不是黑色,45°以外的角不可接受。 。 。

45°指关节角的解法,注意规格书的数值,保证指关节的宽度为2em,需要用勾股定理来计算,该值为2的根

其他角的解,根据勾股定理计算,就是小角的厚度。 30度,

投影文字模糊怎么调_css 文字投影_投影文字灯

实际上,折角需要旋转

第 5 章,版式 20,连字符

不提倡使用text-align: justify;

CSS v3 的新属性 hyphens 接受 3 个值:none、manual 和 auto。为此,需要在 HTML 标记的 lang 属性中指定适当的语言

21.插入换行符

对应的名称和值在一行上

22. 斑马白用于文本行

以前,:nth-child() 技巧用于实现斑马白。

解决方案:为整个元素设置统一的背景图片。 修改行高时记得改变背景大小

23.调整标签长度

tab-size:css的第三个版本,接受一个数字,表示字符数或宽度值(这不太实用)。 通常设置为 4 或 2。

pre {tab-size: 2; }

24. 连字

字体变体连字:普通连字、任意连字、历史连字;

CSS3的属性

25.华丽的&符号

导入字体样式

26.自定义逗号

之前:使用border-bottom或box-shadow来设置,但与文本会有较大距离,阻止正常的文本换行行为

解决方案:使用 CSS 背景和边框(第三版)

虚线

你也可以考虑波浪线---使用两层渐变

27.言语在现实中的疗效

凸版印刷效果,

当背景浅、文字深时,投影为黑色,透明度80%时投影为红色,效果不错

当背景较暗、文字较亮时,投影为红色

疗效

您还可以使用多层稍微模糊的投影来模拟蒙版,由于模糊算法,这会更消耗性能

这个方法,如果面膜很厚css 文字投影css 文字投影,效果会特别差

但是我们可以使用SVG方案,但是会在结构中插入很多乱七八糟的东西,但是效果还是不错的

文本外发光的效果,但是如果不支持text-shadow,字体模糊的效果会导致部分字符看不到。 可以使用滤镜来达到文字模糊的效果

支持这种支持的浏览器会比较少,但是如果不支持的话,你可能会看到这样的字体

文字提升疗效

复古效果:将所有阴影设置为红色。

投影文字灯_投影文字模糊怎么调_css 文字投影

28.铃声文本

可以通过js动态添加

第六章用户体验 29. 选择合适的键盘光标提示禁用状态隐藏键盘光标 30. 展开可点击区域

添加透明边框。 为了防止背景颜色扩展到边框,可以使用background-clip:padding-box。 如果需要边框,请使用 box-shadow 设置

但这些技巧会影响布局,伪元素也可以替换其宿主元素来响应键盘交互,而不影响布局

31.自定义复选框

当标签元素与复选框关联时,它还可以充当触发开关

当它获得焦点或禁用时也会更改其样式

开关按钮,但很容易与普通按钮混淆,误以为按下会触发动作

32.使用阴影柔化背景

一般:添加额外的 HTML 元素层以遮挡背景

伪元素方案:问题是很难绑定独立的js风暴处理

Box-shadow方案:两个问题:设置其大小的问题,以及无法阻止键盘交互点击

Backdrop解决方案:兼容性问题,不完全支持,谨慎使用

dialog::backdrop {background: rgba(0, 0, 0, .8);}

33.通过模糊来柔化背景

当我们聚焦于较近的物体时,远处的背景是散景的

解决方案:通过向底层元素添加一个类并对其应用模糊滤镜,添加动画将遵循自然规律。但是,此解决方案没有后备解决方案。 可以参考之前的box-shadow效果,但是存在不同的问题。

transition: .6s filter;
filter:blur(5px) contrast(.8) brightness(.8);

34. 滚动提示

35.交互式图片对比控件

CSS 调整大小方案

resize:适用于任何元素,只要其溢出不可见即可,默认为none,即严格禁止resize的特性。 除了两者之外,它的值还有水平和垂直,可以限制元素调整大小的方向。

问题1:div的长度被拉伸超出了图片的长度,解决方案:设置最大长度,max-width: 100%;

问题2:调整摇杆不易识别,解决方法:

设置用户选择:图片无; 如果用户在摇杆下方拖动键盘而不点击,则不会误选图片

范围输入控制方案

。 。 。 。 。 。

第 7 章,结构和布局 第 36 章,自适应内部元素

要求:宽度也可以与高度相同,外袋适应内袋的长度而不是由其父袋决定,并且水平居中。 也就是说,它的长度是由内部激励决定的,而不是由外部激励决定的。

解决方案:CSS 内部和外部规范模型(第三版)是一个较新的规范,它定义了一些新的宽度和高度关键字,最有用的是 min-content。 该关键字将解析为该容器内最大不间断元素的长度。

理解:其他值都有max-content,和inline-block类似,fit-content的效果和浮动元素一样

37.精确控制表格行高

问题:对于不固定的内容,布局更加困难,因为行高根据其内容进行调整

解决方案:使用CSS2.1的属性table-layout,其默认值为auto,即手动表格布局算法。 您还可以接收另一个固定值,该值更可控。

使用时,只需在具有 display:table 样式的元素或其他元素上使用此属性即可。为此,您需要为 table 元素指定长度,并为 text-overflow:ellipsis 指定长度; 要工作,您需要指定该列的长度

38.根据兄弟元素数量设置样式

投影文字模糊怎么调_投影文字灯_css 文字投影

要求:仅当列表项总数为 4 时才设置列表样式

解决方案: :only-child 相当于:first-child:last-child,即第一项和最后一项

li:first-child:nth-last-child(1) {
 /* 相当于li:only-child */
}
li:first-child:nth-last-child(4),
li:first-child:nth-last-child(4) ~ li {
 /* 当列表正好包含四项时,命中所有列表项 */
}
li:first-child:nth-last-child(n+4),
li:first-child:nth-last-child(n+4) ~ li {
 /* 当列表至少包含四项时,命中所有列表项 */
}
li:first-child:nth-last-child(-n+4),
li:first-child:nth-last-child(-n+4) ~ li {
 /* 当列表最多包含四项时,命中所有列表项 */
}
li:first-child:nth-last-child(n+2):nth-last-child(-n+6),
li:first-child:nth-last-child(n+2):nth-last-child(-n+6) ~ li {
 /* 当列表包含2~6项时,命中所有列表项 */
}

39.全角背景,固定宽度内容

之前:使用两层 HTML 元素,一层用于背景,一层用于内容

解决方案:使用cale()

40. 垂直居中

过去:表格布局法、内联块法

基于绝对定位的解决方案

问题:

基于图层单元的解决方案

基于Flexbox的解决方案展示:flex

41. 固定在顶部的页码

固定高度方案:该方案要求脚注文字不换行,脚注规格改变时要进行相应的改变

更灵活的解决方案:使用flex布局

第 8 章,过渡和动画 42,缓动效果

弹跳动漫

弹性过渡

。 。 。 。 。

43.逐帧动画

主要采用steps()的调速函数,而不是基于贝塞尔曲线的调速函数。

Steps():动画会按照你指定的步数分成多个帧,整个动画会在帧之间进行硬切,不做任何配准处理。 一般情况下,我们会尽量避免这些硬剪效果,但如果动画加载的是图片,这个效果就更有用了。

44、眨眼疗效

animation-direction:alternate是偶数循环,alternate-reverse是奇数循环。

它同时反转调整功能,从而产生越来越逼真的动画效果。

或使用步骤()

45. 打字动画

解决方案:核心思想是让容器的长度成为动画的主体;

ch:是CSS3中引入的新单位,代表“0”字形的长度。在等宽字体中,“0”字形与所有其他字形具有相同的长度

存在兼容性问题。

46.具有平滑状态的动画

提供与背景图像平滑连接的包显示。

47. 沿圆形路径平移动画

头像是倒过来的

需要二元解决方案:利用外层的变形来抵消内层的变形效果

单元件解决方案

每个transform-origin可以通过两个translate()来模拟,下面的代码实际上是等价的

我终于读完了这本书。 整个过程是断断续续的,我读得很慢。 当我读完它时,我几乎忘记了它。 有一些收获,但不是很大。 本书中很多知识点都使用了CSS3知识点,所以使用时要注意兼容性问题。 。 无论如何,这是一个好的开始! ! ! 快点! ! !