使用这些不太常用的CSS属性,布局效率上又提高了一个层次
myzbx 2024-12-02 22:39 15 浏览
有很多CSS属性,有些人不了解,或者他们了解它们,但是忘记在需要时使用它们。其实,有时候我们用 JavaScript 来实某些交互,CSS 一个属性就能搞定了,这可以大大节约我们编码的时间。
作为前端开发人员,我们经常会遇到这样的事情。所以我问自己,为什么不搞篇文章列出所有那些较少使用但既有用又有趣的 CSS 属性?
在本文中,我将介绍一些不一样的CSS属性,希望能给你带来点新鲜感,废话不多说,让我们开始吧。
在CSS网格中使用Place-Items
我们只需使用两行 CSS 代码就可以将元素水平和垂直居中。
HTML
<div class="hero">
<div class="hero-wrapper">
<h2>CSS is awesome</h2>
<p>Yes, this is a hero section made for fun.</p>
<a href="#">See more</a>
</div>
</div>
CSS
.hero {
display: grid;
place-items: center;
}
place-items是将justify-items和align-items结合在一起的简写属性。上面的代码等同于下面代码:
.hero {
display: grid;
justify-items: center;
align-items: center;
}
你可能想知道,这是怎么回事? 我们来解释一下。当使用place-items时,它将应用于网格中的每个单元格,也就是说单元格的内容都会居中。如果我们多增加几个单元格就会很清晰明了:
.hero {
display: grid;
grid-template-columns: 1fr 1fr;
place-items: center;
}
Flexbox 与 margin 的配合
与flexbox 结合使用,margin: auto 可以非常轻松地将 flex 项目水平和垂直居中。
html
<div class="parent">
<div class="child"></div>
</div>
css
.parent {
width: 300px;
height: 200px;
background: #ccc;
display: flex;
}
.child {
width: 50px;
height: 50px;
background: #000;
margin: auto;
}
看起来有点酷
列表的 marker 属性
这前,我还不知道每个li项旁边的默认小圆圈称为marker。在我知道::marker伪元素之前,如果要重置小圆圈列表样式,我们一般使用伪类::before或::after伪元素:
ul {
list-style: none;
padding: 0;
}
li {
color: #222;
}
li::before {
content: "?";
color: #ccc;
margin-right: 0.5em;
}
如上所示<li>颜色是#222,而伪元素::before是#ccc。如果<li>和::before具有相同的颜色,那么小圆圈默认颜色就是 li 的颜色,因此根本不需要伪元素。
我们来看一种更好的方法:
li {
color: #222;
}
li::marker {
color: #ccc;
}
比起上面伪类的方式,这简直不要太爽!
text-align 属性
随着CSS flexbox和 grid 的日益普及,初学者一般也是使用它们来居中文本,而不是使用text-align属性,但是,旧方法仍然有效。
使用text-align:center 也可以快速解决问题,考虑以下示例。
如果仅内容需要居中,不一定非要使用flexbox或grid,使用text-align反而会更简单。
display: inline-Flex 属性
当我们需要以为内联的方式显示徽章列表,并且每个徽章都应该是一个flexbox元素,这时就需要 inline-flex 出场了。
HTML
<span class="badge"><svg></svg></span>
<span class="badge"><svg></svg></span>
<span class="badge"><svg></svg></span>
<span class="badge"><svg></svg></span>
.badge {
display: inline-flex; /* where the magic happens */
justify-content: center;
align-items: center;
}
column-rule 属性
CSS 的columns 属性是一种布局方法,可以将元素划分为列。一个常见的用例是将段落文本内容分为两行。但是,最不常见的是我们可以在列之间添加边框。我从是 Manuel Matuzovic的文章中学到了这一技巧。
p {
columns: 3;
column-rule: solid 2px #222;
}
column-rule属性名称可能不能反映其用途,但可以将其想象为类似border-right作用。
background-repeat: round
我最近从Addy Osmani的一条推文中了解了这种价值。background-repeat有一个值,可以防止背景裁剪。
.element {
background-size: contain;
background-repeat: round;
}
太神奇了,是不是
object-fit 属性
object-fit属性是相当神奇且有用的。当我第一次了解它时,它改变了很多事情,使我作为前端开发人员的生活更加轻松。最近,我正在研究显示徽标网格的部分。由于徽标大小不一致,因此有时很难做到这一点。其中一些具有水平形状,一些具有垂直形状。
通过使用object-fit:contain,我可以控制徽标的width和height,并强制将图像包含在定义的宽度和高度中。
HTML
<ul class="brands">
<li class="brands__item">
<a href="#">
<img src="img/logo.png" alt="">
</a>
</li>
<li> <!-- other logos --> </li>
</ul>
css
img {
width: 130px;
height: 75px;
object-fit: contain;
}
通过定义width和height,强制限定图像的大小,这是一个巨大的好处。更好的是,我们可以将以上内容包装在@supports中,以避免在不支持对象适配的浏览器中拉伸徽标图像。
@supports (object-fit: contain) {
img {
object-fit: contain;
height: 75px;
}
}
作者:Ahmad shaded 译者:前端小智 来源:sitepoint
原文:https://ishadeed.com/article/common-css/
相关推荐
- 国外网页/移动端手机开发组件ui工具包欣赏
-
网上有很多可用的webui工具包,让你可以简单的创建一个易于使用的和有吸引力的界面。然而,许多网页设计师都会同意,找到一个好的网页设计工具可以轻松的克服网页设计项目中的挑战。有一件好事是,我们准备了...
- 还在从头开发Web项目?这些模板请收下!
-
在过去的日子里,从头开始创建一个网站变得越来越容易。了解HTML、可能还有CSS的程序员,可以用很少的精力创建一个不错的网页,然后把它放在网络服务器上,就搞定了。比如:当然,你可以选择这种创建方式,但...
- 基于Spring Cloud Alibaba + Nacos构建微服务框架
-
一、技术选型说明mermaidgraphTDA[SpringCloudAlibaba2022.0.0]-->B[Nacos2.2.3]A-->C[Se...
- Consul微服务注册中心使用指南(微服务注册中心选型)
-
Consul作为微服务注册中心,提供了服务发现、健康检查、多数据中心支持等核心功能。以下是关于Consul的详细分步说明:1.Consul核心概念Agent:运行在每个节点上的守护进程,负责...
- 结合Sklearn的网格和随机搜索进行自动超参数调优
-
什么是超参数?今天,隐藏着数学世界的算法只需要几行代码就可以训练出来。它们的成功首先取决于训练的数据,然后取决于用户使用的超参数。这些超参数是什么?超参数是用户定义的值,如kNN中的k和Ridge和L...
- LPL第五轮综述:赛场局势风云变幻 强队持续低迷
-
——电玩巴士专稿,欢迎注源转载。LPL第五轮比赛战罢,本周比赛可谓是风云变幻,几支传统强队本周表现普遍不是很理想,几支排名比较靠后的战队则在本周发挥极为亮眼。而且本周的比赛也非常戏剧性,时常出现各种逆...
- 百公里4.6秒奥迪S5运动版3.0T性能改装
-
作为在欧洲与奔驰E63AMG,宝马M5分庭抗礼的另一款德系运动四门轿跑车——奥迪S5,虽然名气并不如之前的双B大,但是凭借着奥迪一贯推崇的充满动感的设计、激动人心的动力与操控、卓越的制造工艺完美相结...
- 比翼双飞秀“基”情!《英雄联盟》S5新赛季双排冲分组合推荐
-
随着《英雄联盟》S5新赛季的不断逼近,很多小伙伴也在努力提升自己排位的隐藏分,而大伙最关注的估计还是S5赛季如何去快速冲分。相比普通的单排,开5黑是个不错的选择,不过在难以集齐5位小伙伴的情况下,双排...
- S5新版本强势上分ADC英雄 及使用技巧分析
-
很多玩家都会问,S5什么英雄好上分?那么这次小编就为大家带来S5最好上分的ADC英雄,以及ADC的使用技巧。要问一个军事团队里最酷的位置是什么,特种兵毫无疑问第一啦。无论是远程狙击(女警、金克斯)还是...
- S5决赛阵容之KOO 上单Smeb的登顶之役
-
S5全球总决赛终于进入了决赛阶段,这意味着S5赛季终于到了自己的巅峰时刻,而在这个巅峰时刻为我们表演终极对决的两支队伍是SKT战队以及KOO战队。在这场胜者便可以登顶S5的最终之战上,双方无论是看上去...
- 英雄联盟S5小组抽签盘点:有人欢喜有人愁
-
S5小组赛分组抽签在周末的时候已经完成了,这次的分组为了确保公正还特意请了3位没有进入S5的电竞明星来抽签,结果是有人欢喜有人愁。下面就让小编带大家一起来盘点一下这次小组有可能会爆出的冷门吧。S5抽签...
- SUS631化学成分特性及适用范围(sus316的材料成分)
-
sus631特性及适用范围:添加铝的沉淀硬化型钢种,用作弹簧、热圈及计器部件。sus631/17-7PH/S17700/0Cr17Ni7Al沉淀硬化型不锈钢日本SUS631(17-7PH国标0Cr17...
- 4年仅掉价不到3成!这辆45万的奥迪S5纯素车,值不值得买?
-
哈喽~大家好,检车家老司机又和你们见面啦!我是你们的老朋友建国,我曾是一枚修过7年车的汽车修理工,现在是一名专业的二手车检测技师,更是一枚事故车劝退师。欢迎收看本期二手车检测趣事,今天给大家带来的车型...
- 新旗舰什么样?7张图全方位预测三星Note4
-
夏天已经快结束了,这也就意味着今年上半年的重磅机型已经悉数发布完毕,我们先要做的就是过一段平淡的日子然后期待着下半年的重磅产品陆续登场。三星GALAXYNote4无疑是下半年最值得我们期待的机型之一,...
- 拍照为主兼顾视频,将来可能接单,索尼a7m3和松下s5怎么选?
-
最近有小伙伴问了我下面这么一个问题。想买一台全画幅微单,但是预算有限,看好了两款机型,他的问题是:拍照为主兼顾视频,将来可能接单,索尼a7m3和松下s5怎么选?这个问题,我就想到这个网友也是做过一些功...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 基础教程 (29)
- HTML 简介 (30)
- HTML 响应式设计 (31)
- HTML URL 编码 (32)
- HTML Web 服务器 (31)
- HTML 表单属性 (32)
- HTML 音频 (31)
- HTML5 支持 (33)
- HTML API (36)
- HTML 总结 (32)
- HTML 全局属性 (32)
- HTML 事件 (31)
- HTML 画布 (32)
- HTTP 方法 (30)
- 键盘快捷键 (30)
- CSS 语法 (35)
- CSS 选择器 (30)
- CSS 轮廓 (30)
- CSS 轮廓宽度 (31)
- CSS 谷歌字体 (33)
- CSS 链接 (31)
- CSS 中级教程 (30)
- CSS 定位 (31)
- CSS 图片库 (32)
- CSS 图像精灵 (31)