CSS系列 - contents

106 阅读1分钟
  • 不会产生块级上下文,没有相关样式
  • react/vue 替换 React.Fragment
  • 改造 button 一些场景需要模拟按钮的样式
  • 子元素还是会继承
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>display:contents</title>
    <style>
      .container {
        width: 200px;
        height: 200px;
        background: #bbb;
      }

      .wrap {
        border: 2px solid red;
        padding: 20px;
        /* box-sizing: border-box; */
      }

      .inner {
        border: 2px solid green;
        padding: 20px;
        /* box-sizing: border-box; */
      }
      .contents {
        display: contents;
      }
      .button {
        width: 100px;
        line-height: 36px;
        text-align: center;
        background-color: #40a9ff;
        color: #ffffff;
      }
      button[class="contents"] {
        color: #ffffff;
      }
    </style>
  </head>
  <body>
    <h3>默认</h3>
    <div class="container">
      <div class="wrap">
        <div class="inner"></div>
      </div>
    </div>
    <h3>display:contents</h3>
    <div class="container">
      <div class="wrap contents">
        <div class="inner"></div>
      </div>
    </div>
    <h3>改造button</h3>
    <p class="button">Button</p>
    <p class="button">
      <button class="contents">Button</button>
    </p>
  </body>
</html>