background 作为元素外观里的重点功臣介绍完毕,本文再一览其他常用的外观属性。

本文示例中,盒子基础样式:

.box {
font-size: 20px;
margin: 20px;
padding: 20px;
width: 250px;
height: 180px;
border: 10px dashed rgba(0,255,0,1);
}

边框 border

border 也是简写属性,它包含有 3 个子属性:

  • border-width:边框宽度
  • border-style:边框样式
  • border-color:边框颜色

边框宽度和边框颜色没啥好说的啦,就跟之前介绍过的 CSS 单位和 CSS 颜色一样,凡浏览器支持的 CSS 单位和 CSS 颜色都可以喂给它两吃。

边框样式 border-style 不同值之间的区别

边框样式支持 nonehiddendotteddashedsoliddoublegrooveridgeinsetoutset 有这么多种,看看具体区别是啥:

特别注意 nonehidden 区别,在表格中边框重叠情况下,none 隐藏自身,但不隐藏兄弟边框,而 hidden 会隐藏自身和兄弟边框。

巧用边框透明色 transparent 实现三角形

<style>
.box {
width: 0;
height: 0;
border: 100px solid rgba(0,255,0,1);
border-color: #ff4757 transparent transparent transparent;
}
</style>
<div class="box"></div>

看右侧效果,左侧为盒模型占用空间位置:

不同方向的 transparent 可设置不同朝向的三角形。

设置边框图片 border-image

border-image 属性允许用图像来定义边框样式,与背景图类似,允许使用渐变。

特别注意:在使用 border-image 时,再设置边框圆角是无效的,嗯...也不是说无效,就是圆角属性控制不到 border-image,包括 border-style 也无法控制 border-image,所以个人觉得 border-image 应用场景有限。

一个简单例子:

.box {
font-size: 20px;
margin: 20px;
padding: 20px;
width: 250px;
height: 180px;
background-color: #ff4757;
border: 10px dashed;
border-radius: 130px;
border-image:
linear-gradient(
to right,
#ff4757,
#ffa502,
#ffd32a,
#fff
)
10;
}

本例中用了渐变,并且设置边框样式为虚线,还设置了圆角 130px,然而虚线和圆角对边框都无效,圆角对背景色确生效了。

更多使用方式参考 MDN:https://developer.mozilla.org/zh-CN/docs/Web/CSS/border-image

边框圆角属性 border-radius

圆角跟 margin 一样,都是设置四个方向,不同的是每个方向可以设置两个值,表示椭圆的两个半径(分别表示水平大小和垂直大小),使用一个值就表示正圆。

来看一张 MDN 的圆角解释图:

说明:以上图片来源 MDN

除了使用固定值,也可以使用百分比设置圆角弧度,以下是不同的圆角值显示效果:

不常用的边框属性

border-block 用于逻辑块向边框。

border-inline 用于逻辑行向边框。

border-collapse 用于表格单元格边框是否合并。

border-spacing 用于表格单元格边框之间距离。

外轮廓 outline

outlineborder 很相似,在盒模型绘制上,outline 不占用空间位置,可通过 outline-offset 控制与元素的距离。

border: 10px dashed rgba(0,255,0,1);
border-radius: 40px;
background-color: #ff4757;
outline: 5px solid #ff4757;
outline-offset: 4px;

也可使用负数,让外轮廓跑到元素内部中去:

outline-offset: -20px;
outline: 5px solid rgba(0,255,0,1);

效果如下:

阴影 box-shadow

box-shadow 设置元素的阴影效果,此属性无法设置单个方向阴影,只能通过 x 轴和 y 轴偏移量稍微模拟出单个方向阴影。

/* 设置外影 */
box-shadow: 0 0 10px 0 #000;
/* 设置内阴影 */
box-shadow: 0 0 10px 0 #000 inset;
/* 使用 <spread-radius> 可模拟出第二条边框 */
box-shadow: 0 0 0 10px #000;
/* 使用 <spread-radius> 可模拟出第二条边框 */
box-shadow: 0 0 0 10px #000 inset;
/* 使用 x 轴偏移位置 */
box-shadow: 10px 0 10px #000;
/* 使用 y 轴偏移位置 */
box-shadow: 0 10px 10px #000;

效果如下:

透明度 opacity

opacity 就是让元素变得透明,可以看到背后景色,嘿...就是像透视眼一样,取值范围 0.0 ~ 1.0,0 表示完全透明啥都能看到,1 表示完全不透明啥都看不到。

opacity: 0.8; /* 透明度 50% */

效果如下:

总结

边框、阴影、轮廓、透明度这些属性在 Web 网页中随处可见,属于前端必备手术刀,随时都可能用上。

参考资料:https://developer.mozilla.org/zh-CN/docs/Web/CSS/border

Web前端入门第 33 问:CSS 元素外观常用属性(边框、阴影、轮廓、透明度)的更多相关文章

  1. 好程序员web前端分享18个用CSS制作出来的东西

    好程序员web前端分享18个用CSS制作出来的东西,与流行的看法相反,CSS不仅仅是用来提供一个WEB页面的基本风格,以使它看起来更有吸引力.还有很多其他的事情,CSS也可以做的很好.由于它创建动画和 ...

  2. 好程序员web前端分享值得参考的css理论:OOCSS、SMACSS与BEM

    好程序员web前端分享值得参考的css理论:OOCSS.SMACSS与BEM 最近在The Sass Way里看到了Modular CSS typography一文,发现文章在开头部分就提到了OOCS ...

  3. web前端入坑第五篇:秒懂Vuejs、Angular、React原理和前端发展历史

    秒懂Vuejs.Angular.React原理和前端发展历史 2017-04-07 小北哥哥 前端你别闹 今天来说说 "前端发展历史和框架" 「前端程序发展的历史」 「 不学自知, ...

  4. 进击的Python【第十三章】:Web前端基础之HTML与CSS样式

    进击的Python[第十四章]:Web前端基础之HTML与CSS样式 一.web框架的本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客 ...

  5. Android零基础入门第33节:Android事件处理概述

    原文:Android零基础入门第33节:Android事件处理概述 通过对Android基本组件的学习,也有接触少部分Android的事件处理,比如按钮的点击事件.选框的状态切换事件. 一.Andro ...

  6. HTML(七)HTML 表单(form元素介绍,input元素的常用type类型,input元素的常用属性)

    前言 表单是网页与用户的交互工具,由一个<form>元素作为容器构成,封装其他任何数量的表单控件,还有其他任何<body>元素里可用的标签 表单能够包含<input> ...

  7. web前端入坑第二篇:web前端到底怎么学?干货资料! 【转】

    http://blog.csdn.net/xllily_11/article/details/52145172 版权声明:本文为博主[小北]原创文章,如要转载请评论回复.个人前端公众号:前端你别闹,J ...

  8. Brackets - 强大免费的开源跨平台Web前端开发工具IDE (HTML/CSS/Javascript代码编辑器)

    Brackets 是一个免费.开源且跨平台的 HTML/CSS/JavaScript 前端 WEB 集成开发环境 (IDE工具).该项目由 Adobe 创建和维护,根据MIT许可证发布,支持 Wind ...

  9. web前端(7)—— 了解CSS样式,引入css样式的方式

    CSS 在前面大概的介绍了css,从本片博文开始,会详细的介绍它,在最开始介绍web前端时,打开百度首页,当时我提出了一个问题,为什么百度首页的输入框可以放在正中间,就是由于有css的控制,我们可以打 ...

  10. [转载]Brackets - 强大免费的开源跨平台Web前端开发工具IDE (HTML/CSS/Javascript代码编辑器)

    http://brackets.io/ Brackets 是一个免费.开源且跨平台的 HTML/CSS/JavaScript 前端 WEB 集成开发环境 (IDE工具).该项目由 Adobe 创建和维 ...

随机推荐

  1. 【SQL跟踪工具】SQL Profiler 跟踪器使用

    阅读目录 什么是SQL Profiler 为什么要使用SQL Profiler 如何使用SQL Profiler 什么是SQL Profiler SQL Server Profiler 是一个功能丰富 ...

  2. Iceberg参数调整

    1.读取参数介绍 属性   默认值   描述 read.split.target-size 134217728 (128 MB) 组合数据输入分割时的目标大小 read.split.metadata- ...

  3. 关于企业微信扫码登陆vue

        关于企业微信扫码登陆vue   企业微信扫码登陆官方文档 采用的是第一种(构造独立窗口登录二维码) 对于前端来说就步骤就是 页面展示二维码 => 用户扫码登陆点击确定 => 确定之 ...

  4. 学习vue ,环境搭建(VS code、node.js、cnpm、vue-cli)创建项目 并引入element

    安装 1.Visual studio code(VS code) 往期博客:https://www.cnblogs.com/technicist/p/12677052.html 2.Node.js与c ...

  5. 【计算机】常见CPU指令集发展及其关系

    [计算机]常见 CPU 指令集发展及其关系 CPU 与指令集 任何计算机都有一块 CPU,CPU 有其支持的指令集,根据指令集间的兼容性,一种 CPU 可能同时支持多种指令集. 指令集中记录了 CPU ...

  6. c++经典卡常

    1.展开函数 如下代码: void lowbit(int x) { return x&(-x); } signed main() { cout << lowbit(12345); ...

  7. 解密prompt系列50. RL用于优化Agent行为路径的一些思路

    OpenAI新推出的Deep Research功能,属实有些惊艳,也验证了去年的一些观点,之后的大模型工作流会呈现一些截然不同的形态,有敏捷型的例如语音端到端的及时对话,也会有异步长流程的复杂任务,去 ...

  8. Vulnhub-Source-1(CVE-2019-15107)

    一.靶机搭建 选择打开选项 选中下载的ova文件,然后导入选择一个存放路径即可 如果遇到不兼容的情况,可以打开.vmx修改,改为和虚拟机一个版本号 二.信息收集 官方信息 Name: Source: ...

  9. C#语言碎片:Switch-Case语句字符串匹配

    Switch case语句在处理字符串类型匹配时候,case条件需要设置为静态常量或者一个具体的字符串: 因为工具类ToolHand.Name 为变量,所以编译不通过. 使用if语句来逐个判断: 看A ...

  10. k8s dial tcp 127.0.0.1:6443: connect: connection refused排查流程及解决思路

    前言 k8s 集群中,使用 kubelet 报错,如下: The connection to the server 127.0.0.1:6443 was refused - did you speci ...