CSS3圆角、盒阴影与边框图片的具体详解

今天开始整理CSS3的知识 

其实应该是昨晚写的,不过好像是急性肠胃炎了,痛的一晚上没睡着,蓝瘦香菇
还好今天打点滴睡一觉就好了,看来这吃东西还是注意点好,被我的胃肠报复了
css没什么难的,不过看的同时自己要在浏览器上试一试,试一遍就记住了
光看不做白看

CSS3各个浏览器是存在兼容问题的
不同浏览器有不同前缀的私有属性,表示属性或规则还没有成为标准
换句话说,官方还没公布标准的时候,各个浏览器已经偷摸实现了
但是真正标准未来不一定是什么样子,怎么办,那就加前缀吧
虽然现在新版本浏览器不用加前缀,但保证兼容还是要写

浏览器 前缀

chrome/safari-webkitfirefox-mozIE-msopear-o

border-radius圆角

radius这个单词是半径的意思
CSS3之前要想实现这种效果,最好的办法恐怕只能利用Photoshop了
通过这个属性可以给我们的元素加“圆角”
比如我们把一个元素变成圆

.demo {    width: 100px;    height: 100px;    background-color: gold;    border-radius: 50%;}

这里写图片描述

为什么值是border-radius属性值是50%就变成了一个圆呢?
凭我们对CSS的理解它一定是一个复合属性它等价border-radius: 50% 50% 50% 50%;
border-radius可以拆分为

立即学习“前端免费学习笔记(深入)”;

border-top-left-radius:边框左上角的弧度

border-top-rigtht-radius:边框右上角的弧度

border-bottom-left-radius:边框左下角的弧度

border-bottom-rigtht-radius:边框右下角的弧度

所以它和下面的代码等价,但是我们不要写这么麻烦的

.demo {    width: 100px;    height: 100px;    background-color: gold;    border-top-left-radius: 50%;    border-top-right-radius: 50%;    border-bottom-left-radius: 50%;    border-bottom-right-radius: 50%;}

就拿这个border-top-left-radius: 50%来说

这里写图片描述

实际上它相当于在元素盒的坐上画一个矩形,矩形的宽高就是元素的一半(50%)
并且以靠近元素内部的点为圆心画弧
于是四个属性合在一起,就成了一个圆

CSS3圆角、盒阴影与边框图片的具体详解

这个属性还可以更复杂
下面的代码是等价的

.demo {    width: 100px;    height: 100px;    background-color: gold;    border-top-left-radius: 10px 20px;    border-top-right-radius: 20px 30px;    border-bottom-right-radius: 30px 40px;    border-bottom-left-radius: 40px 50px;}
.demo {    width: 100px;    height: 100px;    background-color: gold;    border-radius: 10px 20px 30px 40px / 20px 30px 40px 50px;}

注意顺序是顺时针:左上、右上、右下、左下
这样丧心病狂的写法还真的不常见
子属性看起来是复合属性border-top-left-radius: 10px 20px;
但其实不是,好奇的我尝试了一下发现并没有border-top-left-radius-x这个属性
第一个数字表示矩形x轴方向的距离,第二个数字表示矩形y轴方向的距离,
不要让前面的top-left误导你
css中所有类似属性的都是x轴在前,y轴在后
比如background-position复合属性就是background-position-x在前,background-position-y在后

通过这个好玩的属性,我们可以做半圆

.demo {    width: 200px;    height: 100px;    background-color: orangered;    border-radius: 100px 100px 0 0 / 100px 100px 0 0;}

半圆

做一个叶子

.demo {    width: 200px;    height: 100px;    background-color: greenyellow;    border-radius: 200px 0 200px 0 / 100px 0 100px 0;}

叶子

和我们的padding、margin等复合属性类似

写1个值 border-radius: 10px –> ↖/↗/↘/↙
写2个值 border-radius: 10px 20px –> ↖/↘,↗/↙
写3个值 border-radius: 10px 20px 30px –> ↖,↗/↙,↘
写4个值 border-radius: 10px 20px 30px 40px –> ↖,↗,↘,↙

相信大家懂我的意思

box-shadow盒阴影

我给上面我们写的叶子加一行代码

.demo {    width: 200px;    height: 100px;    background-color: greenyellow;    border-radius: 200px 0 200px 0 / 100px 0 100px 0;    box-shadow: 10px 20px;}

叶子

产生了影子的效果,属性值就是x轴的偏移量和y轴的偏移量
此外还有一些可选的属性值:阴影模糊半径、阴影扩展半径、阴影颜色、投影方式
同时一个盒子可以拥有多个阴影,用逗号隔开就好了

.demo {    width: 200px;    height: 100px;    background-color: greenyellow;    border-radius: 200px 0 200px 0 / 100px 0 100px 0;    box-shadow: 20px 20px 5px 5px green,                40px 40px 5px 5px;}

叶子

至于投影方式默认是外投影,我们可以设置属性值inset变成内投影
比如做一个月食的效果

.demo {    width: 200px;    height: 200px;    background-color: black;    border-radius: 50%;    box-shadow: 40px 40px 0 0 yellow inset;}

月食

border-image边框图片

首先我需要一张作为边框图片的资源

边框

我拿的这张图片的大小是81px*81px
border-image也是一个复合属性,子属性有这些

border-image-source:图像来源路径

border-image-slice:指定图像的边界向内偏移

border-image-repeat:边框图像的平铺方式

border-image-width :边框宽度
(border-image-outset用不上不讲了)

.demo {    width: 54px;    height: 54px;    border: 27px solid transparent;    border-image: url('border.png');}

只写一个图片资源样子会很奇怪
图片

我们先加上裁剪属性值

.demo {    width: 54px;    height: 54px;    border: 27px solid transparent;    border-image: url('border.png') 27;}

图片
注意它没有单位(默认px),也可以用百分比的形式
这里的27表示对图片四个方向(上右下左)都从外向里裁剪27px变成一个九宫格

九宫格

然后将四个角的图片放到边框的四个角
将剩下的部分(中间的扔掉)拉伸(默认)放到边框余下的位置
如果你想裁剪不同像素,可以分开写

比如border-image: url('border.png') 10% 20% 30% 40%;
九宫格就会被划成这样

九宫格

平铺方式一下有几种

stretch 拉伸

repeat 平铺

round 铺满(拉伸平铺)

默认的就是stretch拉伸
现在我把盒子宽度变为200px,再来比较这三种方式的区别

.demo { /*①拉伸*/    width: 200px;    height: 54px;    border: 27px solid transparent;    border-image: url('border.png') 27 stretch;}

拉伸就是把图片自适应拉开
stretch

.demo { /*②平铺*/    width: 200px;    height: 54px;    border: 27px solid transparent;    border-image: url('border.png') 27 repeat;}

平铺会把裁剪的图片放到中间的位置,然后向两边重复
repeat

.demo { /*③铺满*/    width: 200px;    height: 54px;    border: 27px solid transparent;    border-image: url('border.png') 27 round;}

铺满是拉伸和平铺的结合,不会造成上面的切割效果(毫无违和感)
当然它会尽可能重复多个小方格
round

我们可以再调整边框图片的宽度
比如说我要调整为20px
在裁剪属性值后加‘/’写上要调整的宽度值

.demo {    width: 200px;    height: 54px;    border: 27px solid transparent;    border-image: url('border.png') 27/20px round;}

CSS3圆角、盒阴影与边框图片的具体详解

今天这个就不总结了,都在上面了

以上就是CSS3圆角、盒阴影与边框图片的具体详解的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1608641.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月23日 22:15:34
下一篇 2025年12月23日 22:15:53

相关推荐

  • CSS3中的颜色值RGBA以及渐变色的具体详解(图)

    css3之前渐变色图片只能用背景图片 css3的渐变色语法可以让我们省去下载图片的开销 并且在改变浏览器分辨率时有更好的效果 颜色值RGBA 我们熟悉的rgb颜色标准,是由r(red)、g(green)、b(blue)三种颜色叠加变化形成各种颜色 取值0~255,或0~100% rgba就是在rgb…

    2025年12月23日 好文分享
    000
  • CSS3字体与文本效果的示例代码分享

    CSS3允许我们使用自定义字体  也多了一些不错的文本效果 自定义字体 使用自定义字体需要使用@font-face规则 当然首先你要有自定义文字文件 Payen S.Tsung @font-face { font-family: myDIYfont; /*自定义字体名*/ src: url(‘Gin…

    2025年12月23日 好文分享
    000
  • 关于CSS3多重背景及背景图片裁剪和定位以及尺寸的具体详解

    CSS3之前我们可以对背景添加一张图片  css3允许我们在一个元素上添加多个图片 多重背景图片 .demo { width: 600px; height: 200px; border: 1px solid black; background: url(‘1.png’) no-repeat;} 多重…

    2025年12月23日 好文分享
    000
  • CSS3完成图片lowpoly动画效果的过程详解

    本篇文章主要介绍了css3实现任意图片lowpoly动画效果实例,这是一个利用css3的动画属性实现的结合lowpoly(低多边形风格)的效果,主要利用了css3 transform属性的rotate旋转,translate移动,scale缩放 这是一个利用CSS3的动画属性实现的结合lowpoly…

    2025年12月23日 好文分享
    000
  • 通过CSS3伪元素完成逐渐发光的边框的代码详解

    这篇文章主要给大家介绍了利用css3伪元素实现逐渐发光的方格边框的相关资料,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。 本文介绍的是一个使用伪元素来实现边框逐渐发光的代码,主要用到scale和opacity这两个属性。下面来看看详细的介绍: …

    2025年12月23日
    000
  • 关于H5和CSS3表单验证的使用教程

    这篇文章主要介绍了使用html5和css3表单验证功能,需要的朋友可以参考下 客户端验证是网页客户端程序最常用的功能之一,我们之前使用了各种各样的js库来进行表单的验证。HTML5其实早已为我们提供了表单验证的功能。至于为啥没有流行起来估计是兼容性的问题还有就是样式太丑陋了吧。 下面我们将来一步一步…

    2025年12月23日 好文分享
    000
  • CSS3中的盒模型与盒模型属性box-sizing的详细介绍

    这两天写的都是小知识点  因为确实有点忙 虽然很简单,但是本着全面总结的原则,还是要说一下 今天我来说一下这个css中的盒模型 以及css3中可以改变盒模型的属性 盒模型 盒模型是计算元素尺寸的模型规则 在我们CSS中盒模型分为两种 W3C标准盒模型 正常情况下我们用的都是这个标准的盒模型 标准盒模…

    2025年12月23日
    000
  • 关于CSS3选择器的详细介绍及用法总结

    CSS3新增了很多强大的选择器  它可以让我们少写一些js事件脚本 我们先来看看各个版本的选择器有哪些 注: ele代表element元素 attr代表attribute属性,val代表value属性值 :xxx都属于伪类选择器,::xxx都属于伪元素选择器 有名字的选择器我尽量细分了 CCS1选择…

    2025年12月23日 好文分享
    000
  • CSS3实现自定义Checkbox特效实例代码

    这篇文章主要给大家介绍了利用css3实现自定义checkbox特效的相关资料,文中给出了完整的实例代码供大家参考学习,相信对大家学习自定义checkbox样式具有一定的参考价值,感兴趣的朋友们下面来一起看看吧。 前言 大家都知道CheckBox是在HTML中让使用者与首页上的素材发生交互作用的一种方…

    2025年12月23日
    000
  • CSS3展现横向滚动菜单按钮效果代码

    今天给大家分享基于css3实现精美的横向滚动菜单按钮,非常不错,具有参考借鉴价值,需要的的朋友参考下吧 废话不多说,直接上图: 然后是代码: 精美横向滚动菜单按钮 – Glunefish Home Chat About CSS: ul{list-style:none;} ul li a{ displ…

    2025年12月23日
    000
  • CSS3实现轮播动画代码

    轮播动画简单实现 现在的前端,越来越注重用户交互和体验,有很多动画和效果是很常见的,如本篇要讲的主题:轮播动画。这和以前经常听到的一个名词–”跑马灯“效果一样。在css3出来之前,都是通过javascript实现的动画,现在我们完全可以使用css3,性能有很大的提升,兼容性也已经很不错,尤其是移动端…

    2025年12月23日
    000
  • 纯CSS3实现不错的表单验证效果的代码分享(图)

    这是补充html5基础知识的系列内容,其他为: 一、HTML5– 新的结构元素 二、HTML5– figure、time、details、mark 三、HTML5– details活学活用 四、HTML5– 现存元素的变化 立即学习“前端免费学习笔记(…

    2025年12月23日 好文分享
    000
  • CSS3制作动画下拉菜单效果代码

    使用css3制作的下拉菜单外观非常漂亮,在各大网站都适用,今天小编通过本文给大家分享基于css3制作的动画下拉菜单效果,需要的的朋友参考下吧 下拉菜单模拟效果图: CSS3: #box{width:200px; height:50px; overflow:hidden; cursor: pointe…

    2025年12月23日
    000
  • flex布局方法(css3弹性伸缩布局教程)

    这篇文章主要为大家详细介绍了css3弹性伸缩布局之flex布局,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 .container{align-items: center;justify-content: center;display: flex;background: white url(im…

    好文分享 2025年12月23日
    000
  • 使用css3让网页元素通过样式实现动画效果代码

    使用css3可以在不使用javascript和flash的情况下让网页元素通过样式实现动画效果,让网站更加酷炫。 css3过渡 过度动画(trainsition)属性就可以实现让元素样式的过度,trainsition支持的浏览器有ie10,firefox,chrome和opera。 先来看看trai…

    好文分享 2025年12月23日
    000
  • CSS3中弹性盒布局的最新版

     CSS 3中弹性盒布局的最新版概述   在CSS 3中,CSS Flexible Box模块为一个非常重要的模块,该模块用于以非常灵活的方式实现页面布局处理。   虽然可以使用其他CSS样式属性来实现页面布局处理,但是如果使用CSS Flexible Box模块中定义的弹性盒布局技术,可以根据屏幕…

    2025年12月23日 好文分享
    000
  • 解析CSS3背景下的@font face规则

      很多人只要一提到@font face规则,心中就会不由自主“哦~~”的一声:“这个我知道,可以用来生成自定义字符小图标!”话是没错,问题在于很多人就以为生成字符小图标就是@font face规则的全部,实际上只是功能之一,如果真正了解@font face规则,你会发现,@font face规则可…

    2025年12月23日 好文分享
    000
  • CSS3的30个选择器总结

    本文总结了30个CSS3选择器,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 或许大家平时总是在用的选择器都是:#id  .http://www.php.cn/wiki/164.html” target=”_blank”>cla…

    2025年12月23日
    000
  • css3中的常用属性介绍

    rgba background:rgba(0, 118, 160, .25); 前三个值是RGB颜色值,最后一个值是水平的透明度(0 =透明,1 =不透明)。 RBGA可应用于任何与颜色相关的属性如字体颜色,边框颜色,背景颜色,阴影的颜色,等   文本阴影 text-shadow(不需要判断浏览器)…

    好文分享 2025年12月23日
    000
  • 使用css3实现简单的响应式布局(代码)

    本文简单的讲解了如何使用css3实现简单的响应式布局: css3文件: *{ margin:0px; padding: 0px;}.heading,.container,.footing{ margin: 10px auto;}.heading{ height: 100px; background-…

    2025年12月23日
    000

发表回复

登录后才能评论
关注微信