zoukankan      html  css  js  c++  java
  • CSS揭秘—透明边框(一)

      前言:

        所有实例均来自《CSS揭秘》,该书以平时遇到的疑难杂症为引,提供解决方法,只能说秒极了,再一次刷新了我对CSS的认知

       该书只提供了关键CSS代码,虽然有在线示例代码链接,但访问速度较慢。下面示例代码是我自己写的,若有错误,欢迎指正

       注:我会在最开头附上每个相关示例所需CSS属性链接作为补充,以供查阅和学习

         我会在每个示例最后附上书中提供的在线示例代码链接;

         我会从书中选择一些css技巧来分享,有兴趣的小伙伴可以去看看这本书,你不会失望的

      CSS需知:

        background-clip属性

                      rgba()和hsla()的区别

      场景:

        如果让你实现下图border边框透明的效果,你会怎么做呢?

         

         

        可能聪明的你首先想到利用 rgba()或hsla()来实现,但结果却不尽人意,边框不见了,如下图

        

      背景工作原理: 

         其实我们设置的边框并没消失,而造成上面截图的情况是因为 默认情况下,背景会延伸到边框所在的区域下层

        

       

         解决方法:

        我们所做的事情并没有让 body 的背景从半透明白色边框处透上来,而是在半透明色边框处透出了这个容器自己

       纯白实色背景,固实际上看到的效果跟纯白色的边框看起来完全一样。

       我们要做的是通过 background-clip 属性并设置值为 padding-box,这样浏览器会用内边距的外沿把背景裁切掉

      DEMO

    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="utf-8" />
            <title></title>
            <style>
                p {
                    margin: 0;
                    padding: 0;
                }
                
                body {
                    background: url(http://csssecrets.io/images/stone-art.jpg) no-repeat;
                    background-size: cover;
                }
                
                .content {
                    position: absolute;
                    margin: auto;
                    top: 0;
                    right: 0;
                    bottom: 0;
                    left: 0;
                    width: 600px;
                    height: 300px;
                    border: 10px solid rgba(255, 255, 255, .5);
                    /*也可以用下面代码hsla()替代rgba()的方式实现透明边框*/
                    /*border: 10px solid hsla(0,10%,100%,.5);*/
                    background-color: #fff;
                    background-clip: padding-box;
                }
                
                .content p {
                    position: absolute;
                    left: 50%;
                    top: 50%;
                    margin: -40px 0px 0px -250px;
                }
            </style>
        </head>
    
        <body>
            <section class="content">
                <p>Newsgd.com is the premier online source of Guangdong news and information, fully displaying Guangdong through channels including Guangdong News, Guangdong</p>
            </section>
        </body>
    
    </html>

      书中在线实例链接:http://dabblet.com/gist/012289cc14106a1bd7a5

  • 相关阅读:
    Windows 科研软件推荐
    有关Python 包 (package) 的基本知识
    《Using Python to Access Web Data》Week4 Programs that Surf the Web 课堂笔记
    Coursera助学金申请模板
    《Using Databases with Python》 Week2 Basic Structured Query Language 课堂笔记
    Jupyter 解决单个变量输出问题
    解决 pandas 中打印 DataFrame 行列显示不全的问题
    《Using Python to Access Web Data》 Week3 Networks and Sockets 课堂笔记
    缓存击穿及解决方案
    jvm垃圾收集器
  • 原文地址:https://www.cnblogs.com/tu-0718/p/10271598.html
Copyright © 2011-2022 走看看