• background: inherit制作倒影、单行居中两行居左超过两行省略


    1、background: inherit;制作倒影

      方法很多,但是我们当然要寻找最快最便捷的方法,至少得是无论图片怎么变化,div 大小怎么变化,我们都不用去改我们的代码。

      -webkit-box-reflect

      这是一个十分新的 CSS 属性,使用起来十分简单,可以从各个方向反射我们内容。

      box-reflect 有四个方向可以选,below | above | left | right 代表下上左右,更具体的可以看看 MDN

      不过兼容性过于惨淡,基本上是只有 -webkit- 内核的浏览器才支持。

      inherit,使用继承

      inherit 是啥,每个 CSS 属性定义的概述都指出了这个属性是默认继承的 (“Inherited: Yes”) 还是默认不继承的 (“Inherited: no”)。这决定了当你没有为元素的属性指定值时该如何计算值。灵活使用 inherit 继承父值,可以解决许多看似复杂的问题。对于本需求我们对图片容器添加一个伪元素使用 background:inherit 继承父值的背景图值,就可以做到无论图片如何变,我们的 CSS 代码都无需改动:

          .container{
             100px;
            height: 100px;
            background-image: url('ly.png');
            background-size: 100px 100px;
            position: relative;
            /* -webkit-box-reflect:below; */
          }
          .container:before{
            content: '';
            position: absolute;
            top: 100%;
            left: 0;
            right: 0;
            bottom: -100%;
            background: inherit;
            transform: rotateX(180deg);
          }

    2、单行居中,两行居左,超过两行省略

      单行居中,多行居左:<h2><p>单行居中,多行居左</p></h2>,让内层 p 居左 text-align:left,外层 h2 居中 text-align:center,并且将 p 设置为display:inline-block ,利用 inline-block 元素可以被父级 text-align:center 居中的特性,这样就可以实现单行居中,多行居左。

      多行省略是有专门的新 CSS 属性可以实现的,但是有些兼容性不大好。主要用到如下几个:

    • display: -webkit-box; // 设置display,将对象作为弹性伸缩盒子模型显示
    • -webkit-line-clamp: 2; // 限制在一个块元素显示的文本的行数
    • -webkit-box-orient: vertical; // 规定框的子元素应该被水平或垂直排列

      上述 3 条样式配合 overflow : hidden 和 text-overflow: ellipsis 即可实现 webkit 内核下的多行省略。

    <h2><p><em>单行居中,多行居左,超过2行省略<em></p></h2>

      为什么p标签里面又要加一层元素呢?因为2个display会有冲突。当然还有别的方法,不细说。

      
  • 相关阅读:
    HTML5:超文本标记语言
    Redis持久化
    ACID VS BASE+CAP
    Redis
    NoSQL(Redis、Menchche、MongoDB)
    transient关键字
    Struts2声明式验证相关问题
    struts2国际化相关问题
    Struts2
    SSH整合的详细步骤
  • 原文地址:https://www.cnblogs.com/goloving/p/10309085.html
Copyright © 2020-2023  润新知