CSS 效果

输入框光标颜色的设置

.input {
  color: black;
  caret-color: red; 
  /*插入光标颜色,小程序真机表现无效,大概率是因为input在focus状态下表现为原生组件,样式对原生组件内部无效*/
}

文字一半区域色块效果实现

// recommand
span {
  text-decoration: underline #f005 .5em;
  text-underline-offset: -4px;
}
// or
span { box-shadow: inset 0 -0.6em 0 0 rgba(219, 42, 42, 0.5); }
// or
span { background: linear-gradient(rgba(255,0,0,.5),rgba(255,0,0,.5)) 0 bottom/100% .5em no-repeat; }

其中,下划线方法是最好的,为什么呢?因为下面两种方法都要求 span 元素必须是inline水平,如果设置为 display:block 或者display: inline-block ,则就会失效。而下划线方法不受元素的display计算值影响。

可编辑元素有某个元素不可编辑

.at {
   -webkit-user-modify: read-only;
}

定制特定字符的字体大小

demo

<span class="price">100元</span>
请补全下面CSS语句中缺少的CSS属性,实现配图所示的效果(“元”的字号小了50%)。
@font-face {
    font-family: smallYuan;
    src: local('PingFang SC'),
       local("Microsoft Yahei");
    ______size-adjust______: 50%;
    unicode-range: U+5143;
}
.price {
    font-family: smallYuan;
    font-size: 24px;
    color: red;
}

背景色消失之谜

demo

已知如下HTML和CSS代码:
<img src="https://imgservices-1252317822.image.myqcloud.com/coco/s09222022/77917eb6.9eglru.png">
<p class="caption">毛发素材</p>
img {
  display: block;
}
.caption {
  width: 200px;
  text-align: center;
  background-color: rgba(0,0,0,.5);
  color: white;
  text-shadow: 1px 1px #0003;
  line-height: 2;
  margin: -2em 0 0;
  position: relative; // 添加此行
}
渲染效果如配图所示,请问,为何<p>元素的背景色消失了?如何让背景色显示?

demo

四角凹陷边框实现

短横线按钮的实现

button {
    width: 100%;
    height: 48px;
    background: linear-gradient(#000, #000) no-repeat center / 64px 2px;
}

Web Animations API与淡出

已知页面上有个 <img>  元素,其变量名称是  eleImage。
请使用 Web Animations API 实现点击该 <img> 元素,元素执行淡出效果并保持透明度为 0,动画时间 300ms。
eleImage.addEventListener('click', function () {
    this.animate([
        { opacity: 1 },
        { opacity: 0 }
    ], {
        duration: 300,
        // 或者 'both'
        fill: 'forwards'
    });
});
// 或者下面语法:
eleImage.addEventListener('click', function () {
    this.animate({
        opacity: [1, 0]
    }, {
        duration: 300,
        fill: 'forwards'
    });
});
// 或者下面语法:
var animation = new Animation([effect][, timeline]);
let keyframes = new KeyframeEffect(eleImage, [
  { opacity: 1},
  { opacity: 0}
], {
  duration: 300,
  fill: 'forwards'
});
let animation = new Animation(keyframes);
// 点击元素
eleImage.addEventListener('click', function() {
  animation.play()
});

带分割线的按钮组

文字两侧中横线

打印如下页面结构,H2标题均在新页的顶部

已知一个HTML文档页面的HTML结构如下:

<h1>标题</h1>
<p>概述。</p>
<h2>二级标题1</h2>
<p>内容。</p>
<h2>二级标题2</h2>
<p>内容。</p>
<h2>二级标题3</h2>
<p>内容。</p>

请写下一段完整的CSS语句(包括CSS选择器),实现对当前页面执行打印操作的时候,所有的二级标题均是新开的打印页的顶部。例如“二级标题1”就在第2页的顶部,二级标题2”就在第3页的顶部,二级标题3”就在第4页的顶部。

@media print {
  h2 {
    break-before: always;
    page-break-before: always;
  }
}