CSS圆角进化论

 CSS圆角发展过程

大致经历了3个阶段,包括:

  1. 背景图片实现圆角
  2. CSS2.0+标签模拟圆角
  3. CSS3.0圆角属性(border-radius属性)实现圆角

☛背景图片实现圆角:==使用背景图片实现圆角的方式很多,实现的方式和圆角的切图方式关系密切

  实现方式有多种,主要讲解2种:
   (一)宽度固定,高度自适应

      实现关键点,4个块级标签构成
      圆角矩形容器(box)—设置固定宽度,同圆角宽度
      顶部圆角(radius-top)—使用背景图片实现顶部圆角
      内容( content )—放置主体内容
      底部圆角( radius-bottom )—使用背景图片实现顶部圆角

   (二)宽度和高度均自适应

      实现关键点,5个标签构成
      圆角矩形容器(box)—1.上下内边距大小至少设置为圆角高度;2.相对定位;3.放置内容
      4个圆角—4个标签,1.分别设置各个圆角背景图片;2.绝对定位于box的4个角

当然,实现的方法还有很多,比如滑动门方法、浮动定位法等

    优势:无需过多无意义标签、能够实现个性化圆角
    劣势:增加了HTTP请求和页面字节数

  1.在以IE6和IE8占主流的今天,考虑到浏览器兼容性,CSS3.0方式设置圆角在Web应用中,暂且还没有得到完全普及
  2.无需多余无意义标签,能够实现个性化的圆角,将设计师的设计完美的以代码实现,使得用背景图片实现圆角仍旧是实现圆角的主流方法

  ☛CSS2.0+标签模拟圆角: border属性+标签模拟:border属性实现圆角颜色,标签模拟圆角弧度,圆角像素越大,所需标签越多

    1.所需模拟标签数=圆角像素
    2.分析各像素圆角特点,讲解实现思路,再使用代码实现QQ邮箱登录页的登录圆角

    优势:纯CSS代码,易于维护,体积小
    劣势:圆角像素越大,无意义标签越多数,圆角越发呆板,只能实现纯色圆角,局限性大

☛CSS3.0圆角属性实现圆角: 圆角属性+边框属性实现圆角:border属性设置边框样式(颜色、粗细、样式),border-radius属性实现圆角

注意:使用css3.0实现圆角,各浏览器存在显示差异,需通过私有前缀解决:-ms-(IE)、-moz-(FF)、-webkit-(谷歌,safari),特别的,各浏览器对border-radius属性支持较好,不写私有前缀也能正常显示,但像线性渐变属性linear-gradient,就必须写私有前缀,否则就会出现显示差异

    优势:专用CSS代码,易于维护,体积小,圆角自然圆滑,适合扁平化圆角实现
    劣势:IE8及以下版本不支持CSS3.0,存在兼容性问题,对于个性化圆角实现上存在局限性

  目前,CSS3.0已被广泛应用于移动APP应用,不考虑IE8及以下版本兼容问题,一些网站已经将圆角属性广应用到了Web端,案例中的腾讯登录框就使用了border-radius属性实现了圆角,但该圆角在IE8中显示不出来,而呈现为直角

实战项目案例:

效果图

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>登录QQ邮箱</title>
<link href="css/login.css" type="text/css" rel="stylesheet" />
</head>
<body>
<div id="wrap">
  <div id="header">
          <h1></h1>
          <div class="topnav">
               <div class="top_radius"></div>
               <div class="content txt_align_r">
          <p class="margin_r_10">
            <a href="#">English</a>|<a href="#">反馈建议</a>|<a href="#">帮助中心</a>|<a href="#">企业邮箱</a>
          </p>
         </div>
               <div class="btm_radius"></div>
          </div>
     </div>
     <div id="mainbody">
          <div class="left"><img src="data:images/left_cont.gif" width="383" height="290" /></div>
          <div class="right">
               <div class="radius_border_1"></div>
               <div class="radius_border_2"></div>
               <div class="loginbox">
                 <h2>登录QQ邮箱</h2>
                 <ul>
                    <li>
              <input type="text" value="邮箱账号或QQ号码" class="account" />
              <input type="button" value="@qq.com" class="mail_btn" /></li>
                    <li>
              <input type="text" value="QQ密码" />
            </li>
                 </ul>
               <img src="data:images/login_txt.gif" width="312" height="171" /></div>
               <div class="radius_border_2"></div>
               <div class="radius_border_1"></div>
          </div>
     </div>
     <div id="footer">
          <div class="content txt_align_c">
          <span class="l_top_radius"></span>
          <span class="r_top_radius"></span>
          <span class="l_btm_radius"></span>
          <span class="r_btm_radius"></span>
          <p class="line-height_24"><a href="#">关于腾讯</a>|<a href="#">服务条款</a>|<a href="#">客服中心</a>|<a href="#">联系我们</a></p>
          </div>
          <p class="txt_align_c">© 1998 - 2014 Tencent Inc. All Rights Reserved</p>
     </div>
</div>
</body>
</html>
@charset "utf-8";
/* common style */
*{margin:; padding:; font-size:12px; font-family:Verdana, Geneva, sans-serif,"宋体"; list-style:none;}
a{text-decoration:none; color:#04309b;}
a:hover{text-decoration:underline;}
.txt_align_c{text-align:center;}
.txt_align_r{text-align:right;}
.margin_r_10{margin-right:10px;}
.line-height_24{line-height:24px;}
 
#wrap{width:800px; margin:40px auto;}
#header,#mainbody,#footer{width:100%; overflow:hidden;}
#header h1{background:url(../images/logo.gif) no-repeat; height:43px; width:200px; float:left;}
 
/*背景图像实现固定宽度圆角*/
.topnav{float:right; width:595px; margin-top:5px;}
.top_radius{width:100%; overflow:hidden; background:url(../images/t_radius_595.gif) no-repeat; height:3px;}
.btm_radius{width:100%; overflow:hidden; background:url(../images/b_radius_595.gif) no-repeat; height:3px;}
 
.content{background:#ebf3ff; padding:5px; position:relative;}
.content p{color:#d0ccda;}
.content p a{margin:0 5px;}
 
/*背景图像实现宽度、高度自适应圆角*/
.l_top_radius,.r_top_radius,.l_btm_radius,.r_btm_radius{width:4px; height:3px; position:absolute;}
.l_top_radius{background:url(../images/l_top_radius.gif) no-repeat; left:; top:;}
.r_top_radius{background:url(../images/r_top_radius.gif) no-repeat; right:; top:;}
.l_btm_radius{background:url(../images/l_btm_radius.gif) no-repeat; left:; bottom:;}
.r_btm_radius{background:url(../images/r_btm_radius.gif) no-repeat; right:; bottom:;}
 
#mainbody{margin-top:22px;}
.left{float:left;}
 
/*CSS2.0+标签实现圆角--登录模块外框*/
.right{float:right; width:346px;}
.radius_border_1{margin:0 2px; height:1px; background:#acc3e3;}
.radius_border_2{margin:0 1px; height:1px; background:#edf6ff; border-left:1px solid #acc3e3; border-right:1px solid #acc3e3;}
.loginbox{background:#edf6ff; border-left:1px solid #acc3e3; border-right:1px solid #acc3e3; padding:20px;}
.loginbox h2{color:#28456f; font-size:14px;}
.loginbox ul{margin-top:10px;}
.loginbox li{margin-bottom:10px;}
/*CSS3.0圆角属性实现表单元素圆角*/
.loginbox li input{border:1px solid #9dadc6; border-radius:2px; height:32px; padding:0 5px; color:#888; width:292px;}
.loginbox li input.account{width:182px; border-right:1px solid #d5deed; 
border-top-right-radius:; border-bottom-right-radius:; 
background:-moz-linear-gradient( top,#ddd 0%,#eee 10%,#fff 20%); 
background:-webkit-linear-gradient( top,#ddd 0%,#eee 10%,#fff 20%);  
background:-ms-linear-gradient( top,#ddd 0%,#eee 10%,#fff 20%);}
.loginbox li input.mail_btn{
  width:110px; 
  height:34px; 
  border-top-left-radius:; 
  border-bottom-left-radius:; 
  background:url(../images/select.gif) 90px center no-repeat #fbfbfb; 
  color:#504c4d; 
  text-align:left; 
  cursor:pointer;
}
#footer{margin-top:27px;}
#footer p{line-height:24px; color:#888;}
#footer .content p{color:#d0ccda;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/34601.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高级篇十六、多版本并发控制(重要)

目录 1、什么是MVCC2、快照读与当前读2.1 快照读2.2 当前读 3、复习3.1 隔离级别3.2 隐藏字段、Undo Log版本链 4、MVCC实现原理之ReadView4.1 什么是ReadView&#xff1f; 1、什么是MVCC MVCC &#xff08;Multiversion Concurrency Control&#xff09;&#xff0c;多版本并…

电脑出现0xC1900101错误怎么办?

在更新或安装Windows操作系统时&#xff0c;有时系统会提示出现了0xC1900101错误。这个错误的出现通常是源于与驱动程序相关的错误所致。那么当电脑出现0xC1900101错误时该怎么办呢&#xff1f; 为什么会出现错误代码0xC1900101&#xff1f; 通常情况下&#xff0c;有以下几个…

error: exportArchive: No signing certificate \“Mac Development\“ found

error: exportArchive: No signing certificate “Mac Development” found UNIAPP打包又遇到这个问题了, 证书过期续期的时候又遇到这个问题了(之前遇到过解决了,时间长忘了),记录一下,报错信息 error: exportArchive: No signing certificate \"Mac Development\"…

5.8.8 TCP流量控制

5.8.8 TCP流量控制 计算机网络的流量控制实际上是调节发送方的速率使得接收方能够及时处理的一个过程。 在TCP中采用的是大小可变的滑动窗口的方式进行流量控制&#xff0c;窗口大小的单位是字节。 如图 根据接收方的接收能力&#xff0c;通过接收窗口rwnd可以实现一个端到端…

C语言王国探险记之字符串+注释

王国探险记系列 文章目录&#xff08;3&#xff09; 前言 一&#xff0c;什么是字符串呢&#xff1f; 1&#xff0c;那C语言是怎么表示字符串的呢? "hello world.\n" 2&#xff0c;证明字符串的结束标志是一个 \0 的转义字符 3&#xff0c;证明字符串的结束标…

基于springboot+Redis的前后端分离项目(二)-【黑马点评】

&#x1f381;&#x1f381;资源文件分享 链接&#xff1a;https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA?pwdeh11 提取码&#xff1a;eh11 商户查询缓存&#xff0c;缓存更新策略&#xff0c;缓存穿透 商户查询缓存a.什么是缓存1.为什么要使用缓存2.如何使用缓存 b.添加商…

微信小程序分包

原生小程序分包和 uniapp 小程序分包差不多。 分包只是在原有代码结构上&#xff0c;指定那个文件夹属于分包&#xff0c;所以&#xff0c;页面地址原本路径不会修改。 比如&#xff0c;将pages/mine设为分包&#xff0c;mine下面的有页面地址pages/mine/index/index&#xf…

系统盘空间不足怎么清理?Win11系统盘瘦身的方法

系统盘空间不足怎么清理&#xff1f;当我们的电脑使用久了&#xff0c;就会有大量的垃圾文件堆积&#xff0c;会给系统盘空间带来很大的压力&#xff0c;容易出现系统运行卡顿的情况&#xff0c;对此我们需要对系统盘进行一次大扫除。本期教程小编将为大家分享Win11系统盘瘦身的…

20本期刊影响因子上涨,7月SCI/SSCI/AHCI/EI刊源表已更新!

2023年7月SCI/SSCI/AHCI/EI期刊目录更新 2023年6月28日发布的最新《期刊引证报告》中&#xff0c;我处合作期刊中&#xff0c;7月刊源表有20本期刊影响因子上涨&#xff0c;同时新增多本快刊&#xff01; 重磅&#xff01;2023年JCR正式发布&#xff08;附影响因子名单下载&a…

自定义MVC引用XML配置文件实现

目录 前言 自定义MVC实现 1. 导入XML配置文件 2. 导入XML解析建模 3. 优化中央控制器 3.1 修改DisPathServlet中init初始化方法 3.2 修改ActionServlet逻辑处理流程 3.3 通过反射机制实例化子控制器类 3.4 中央控制器将请求委托给子控制器处理 3.5 根据请求结果码跳…

【物联网无线通信技术】802.11无线安全认证

本文由简入繁介绍了IEEE802.11i无线局域网安全技术的前世今生&#xff0c;帮助路由器开发者对WLAN的加密安全策略有一个概念上的认知&#xff0c;能够更好地分析STA掉线以及漫游等问题。 目录 WEP WPA WPA/WPA2-PSK认证过程 802.11i WEP WEP是Wired Equivalent Privacy的简…

Learning C++ No.30 【lambda表达式实战】

引言&#xff1a; 北京时间&#xff1a;2023/6/9/9:13&#xff0c;今天8:15起床&#xff0c;可能是最近课非常少&#xff0c;导致写博客没什么压力&#xff0c;什么时间都能写&#xff0c;导致7点起不来&#xff0c;哈哈哈&#xff0c;习惯睡懒觉了&#xff0c;但是问题不大&a…

记一次自建靶场域渗透过程

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 环境搭建02 外网突破03 权限提升并维持&#xff08;1&#xff09;获取 meterpreter 会话&#xff08;2&#xff09;尝试开启远程桌面&#xff08;3&#xff09;Msf 派生 Cobalt Strike shell&#…

JumpServer开源堡垒机安装配置

JumpServer开源堡垒机安装与配置 一、简介二、下载与安装2.1、下载2.2、安装2.3、其他 一、简介 JumpServer 堡垒机帮助企业以更安全的方式管控和登录各种类型的资产。 支持 官网地址&#xff1a;https://www.jumpserver.org/index.html JumpServer 采用分层架构&#xff0c;…

Jenkins构建Python项目提示:‘python‘ 不是内部或外部命令,也不是可运行的程序

一、问题描述&#xff08;1&#xff09; 今天Darren洋在jenkins里构建与飞书机器人通知时&#xff0c;用python编写脚本时发现了以下报错&#xff1a;Jenkins构建Python项目提示&#xff1a;‘python‘ 不是内部或外部命令&#xff0c;也不是可运行的程序 二、解决办法 在配置…

【Spark实战】Windows环境下编译Spark2 Linux上部署Spark On Yarn

Windows环境下编译Spark2 环境准备 git-2.14.1maven-3.9.2jdk-1.8scala-2.11.8zinc-0.3.15 主下载地址spark-2.3.4 github官方地址 编译准备 maven远程仓库使用的是阿里云的 解压源码包spark-2.3.4.zip,修改根模块的pom文件。主要目的是为了变更hadoop的版本号&#xff0c;…

在 TypeScript 中有效地使用 keyof 和 typeof 来表示类型

在本文中&#xff0c;我们将学习如何通过组合类型运算符和枚举来提取和声明常量类型typeof&#xff0c;以使您的代码库得到优化。keyof 先决条件 为了获得更好的编码体验&#xff0c;您应该在 IDE 中安装 TypeScript&#xff0c;例如VSCode。它将为您提供许多基本功能&#xff…

【论文导读】- Variational Graph Recurrent Neural Networks(VGRNN)

文章目录 文章信息摘要BackgroundGraph convolutional recurrent networks (GCRN)Semi-implicit variational inference (SIVI) Variational graph recurrent neural network (VGRNN)VGRNN modelSemi-implicit VGRNN (SI-VGRNN) 文章信息 Variational Graph Recurrent Neural …

STM32 串口代码配置

一、首先开发板上关于串口1的引脚配置已经配置好了&#xff0c;位置在SYSTEM的 usart.c 文件中&#xff08;注意&#xff1a;只配置了串口1的&#xff0c;其他使用时需要自己配置&#xff09; 重要的是明白配置的参数都是什么意思&#xff0c;针对实现不同的串口功能有什么影响…

选择高考志愿:聚焦计算机科学与技术,规避土木工程

选择高考志愿&#xff1a;聚焦计算机科学与技术&#xff0c;规避土木工程 高考季已至&#xff0c;各地高考成绩陆续公布&#xff0c;许多毕业生和家长开始面临疑惑&#xff1a;如何填报志愿、选专业还是选学校、什么专业好就业&#xff1f;张雪峰曾提到&#xff1a;“普通家庭…