网站首页 > 基础教程 正文
这些css冷知识虽然看似没有什么太大难度,但是你很多时候都不会这么使用!不妨来看看!或许可以学到一些新知识!
01 增加css优先级的小技巧
如果你想增加p标签的优先级,你会怎么做?
<div class="father">
<p class="p1"></p>
<span class="s1"></span>
</div>
以前我是这么做的,增加嵌套。
// 方法1
.father .p1{
color : red;
}
// 方法2
div.p1{
color:red;
}
但是这种方式都不是最好的办法,这些方法增加了耦合,降低了可维护性。
最好的办法是下面这种办法
// 方法1
.p1.p1{
color:red;
}
// 方法2
.p1[class]{
color:red;
}
02 css选择器是否区分大小写
有些区分大小写,有些不区分大小写。例如区分大小写的有ID,类选择器class,属性选择器[attr=val]中的val,而attr不会影响;不区分大小写的有标签选择器
// 不区分div{...}
[class]{...}
[id]{...}
[title="val"]{...} === [Title="val"]{...}
// 区分#root{...}
.p{...}
[title="val"]{...} !== [title="Val"]{...}
如何摆脱属性值大小写的限制?你可以通过正则表达式来解决这个问题。如下
// 方法1
[title ~="val" i]{...}
// 方法2
[title *="val" i]{...}
03 响应式 CSS 纵横比
创建具有精确宽度和高度的视频很容易,但要使视频随屏幕大小缩放,同时保持其纵横比则要困难得多。虽然HTML 中的video标签使得创建响应式视频变得异常容易。您需要做的就是将宽度设置为 100%,将高度设置为自动。
video{
height: auto;
width:100%
}
但是对于iframe却是失效的。如果我们尝试将宽度设置为 100% 并将高度设置为 auto 的上述技巧,我们将得到一个正确缩放其宽度的元素,但高度始终为 150 像素。这是因为 iframe 默认为 150 像素高并忽略嵌入视频的纵横比。
处理这种情况的最佳方法是将 iframe 包装在一个保持正确纵横比的容器中,然后用 iframe 填充该容器。如下代码:
<div class="video-box" style="--aspect-ratio: 2 / 3;">
<iframe src="..."></iframe>
</div>
// css
.video-box{
position: relative;
padding-bottom: calc(var(--aspect-ratio, .5625) * 100%);
height: 0;
width: 100%;
}
.video-box iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
- 上一篇: 干货分享 css的小技巧 css怎么弄
- 下一篇: 前端系列——CSS方法封装 前端如何用封装组件
猜你喜欢
- 2024-10-15 简单拖拽即生成网页 VvvebJs 拖拽生成html页面前端框架
- 2024-10-15 WordPress 常用函数:esc_html wordpress功能代码
- 2024-10-15 前端入门——css 选择器 css选择器详解
- 2024-10-15 CSS实现html指令式Tips文字提示 css提示信息
- 2024-10-15 从青铜到王者10个css3伪类使用技巧和运用
- 2024-10-15 10-CSS3选择器详解 css~选择器
- 2024-10-15 用 Java 拿下 HTML 分分钟写个小爬虫
- 2024-10-15 你想知道的CSS3选择器,全在这里 你想知道的css3选择器,全在这里的英文
- 2024-10-15 不要再封装各种Util工具类了,这个神级框架值得拥有
- 2024-10-15 jQuery中CSS简单操作(获取,追加,移除,切换,判断)【406】
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)