使用这些不太常用的CSS属性,布局效率上又提高了一个层次
liuian 2025-02-03 13:58 37 浏览
有很多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: "o";
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/
相关推荐
- 手机u盘驱动器下载(手机u盘驱动器下载安装)
-
不能直接手机下载到u盘,可以下到手机,然后手机连电脑copy到u盘你只需把你心爱的U盘插到电脑上,然后它会有一个新硬安装向导当它要搜索驱动程序时,你只需将其浏览到你所下载的usb万能驱动文件夹点下...
- 旺旺下载app(旺旺下载链接是多少)
-
可以下载多换几个下载软件试试直接登录官方appstore里面下载就可以使用了。1、首先在手机中找到appstore。2、点击进入后,在上方的搜索条里输入“阿里旺旺”,选中官方的阿里旺旺。3、点击进...
- 主机显卡在哪个位置(主机显卡在哪个位置看)
-
1、集成显卡的位置一般在机箱后面的中部,插口是竖立的。独立显卡的位置一般在机箱后面的下部,插口是横平的。2、独立显卡,一般插在主板中部的插槽,用手可以直接拔出。如果分不清哪个是显卡的插口,就直接看显示...
- windows7ultimate下载(windows7 ultimate)
-
要下载澪Ultimate启动器,您可以按照以下步骤进行操作:1.打开您的网络浏览器,访问澪Ultimate启动器的官方网站或相关下载页面。2.在网站上找到适用于您的操作系统的下载选项。3.点击下...
- 苹果首次激活时间查询(iphone激活查询官网入口)
-
登陆苹果官网输入手机的序列号,查看手机的保修日期就可以了,一般保修到期的前一年就是手机的开机激活时间。查看第一次开机激活时间操作方法:1、首先打开设置2、点击通用3、点击关于本机...
- u盘启动哪个好用(u盘启动盘哪个最好)
-
大白菜超级U盘启动盘制作工具,打造你真正的万能U盘!安装后你在U盘里是看到什么文件的,是隐藏分区,这样你放存别的东西时也不会搞乱了。大白菜超级U盘启动盘制作工具,是纯傻瓜式制作U盘启动盘功能的超级万能...
- 腾达路由器高级设置在哪里(腾达路由器怎么设置安全性高)
-
方法/步骤分步阅读1/11打开新购的腾达路由器,查看路由器背面的默认IP和管理员密码。小提示:密码为:admin默认管理IP:192.168.0.12/11接好腾达路由器和插上电源通电,等待2-3分钟...
- dell新版bios设置恢复(戴尔bios恢复设置)
-
1)、开机后,在看到DELL图标时,按3下F2,进入BIOS。(灰色界面)2)、分别按键盘上的CapsLock,ScrollLock,以及NumLock三个键,使键盘上相应的三个指示灯点亮。3)、...
- 重装win7系统需要多少钱(重装一个win7系统要多少钱)
-
1、win7系统装完后需要占用C盘空间10-15GB,如果把常用软件也安装到C盘,大小超过20+。 2、在分区的时候根据硬盘大小,如果硬盘相对较小,一般建议设置50G,最低不能低于30G。因...
- 性价比笔记本推荐2025(性价比高的笔记本电脑2021年)
-
2023年联想推出的一款性价比高的笔记本电脑是联想Yoga7Carbon。它是一款轻薄便携的2合1笔记本,采用了高强度碳纤维材质打造,具有出色的抗撞击性和高端外观。配备了英特尔第11代酷睿处理器、...
- 华为和联想平板哪个好(华为平板和联想平板对比)
-
联想,是典型的组装厂,CPU不能造,屏幕不能造.而华为,拥有核心技术,大量有价值专利的,比如说:华为mediapad平板电脑小巧轻薄,7英寸便携机身让她成为出行必备,新推出的粉红炫彩版更集美貌与智慧于...
- win10休眠文件有必要删除吗(win10休眠文件有必要删除吗)
-
休眠文件的功能是保存当前内存中的所有数据至硬盘后关闭电源,电脑再次开启时还能够很快恢复到关机前的状态。通过保留存储,将留出一些磁盘空间以供更新、应用程序、临时文件和系统缓存使用。目标是通过确保关键的操...
- win10内核版本升级(win10 内核版本)
-
手机系统内核是Linux,linux内核是靠升级系统版本来升级内核的。升级方法:1、使用手机自带的系统更新功能:在安卓手机的设置--关于手机中,可以看到当前安卓手机的系统版本,另外这里也有自动检测更新...
- 一周热门
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
