优雅从css做起(一)

108 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第一天,点击查看活动详情

平时总是研究一些逻辑上的优化呀,还有最近有没有什么新的技术兴起,根本无暇顾及样式的完美(实际就是懒),最近简单看了看css相关的内容,发现还是蛮有趣的。加下来给大家分享一些简单案例

Demo

看效果

image.png

上代码

<!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>Document</title>
</head>

<body>
  <div style="position: relative;">
    <div class="box"></div>
  </div>
  
</body>
<style lang="css">
.box {
  height: 200px;
  background: linear-gradient(45deg, #000 0, #000 50%, #fff 50%);
}
.box::before {
  content: "hello word hello word hello word!!!";
  position: absolute;
  font-size: 32px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  mix-blend-mode: difference;
}
</style>

</html>

demo(彩蛋)

如果加入简单的css样式想过会更棒
<!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>Document</title>
</head>

<body>
  <div style="position: relative;">
    <div class="box"></div>
  </div>
  
</body>
<style lang="css">
.box {
  height: 200px;
  background: linear-gradient(45deg, #000 0, #000 50%, #fff 50%);
}
.box::before {
  content: "hello word hello word hello word!!!";
  position: absolute;
  font-size: 32px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  mix-blend-mode: difference;
  // 加入简单动画
  animation: move 3s infinite linear alternate;
}
// 动画内容
@keyframes move {
    0% {
        transform: translate(-30%, -50%);
    }
    100% {
        transform: translate(-70%, -50%);
    }
}
</style>

</html>

番外

页面中数据列表通常会有暂无数据的情况,或者是通过一些搜索条件检索之后并没有数据查到,也会出现数据空列表的情况,如果不做任何处理就会出现页面空白的情况。这种情况无的非就是判断渲染数据是否是空,空的话展示一些ui设计好的图片但是有时候不需要任何图片,只需要简单的文字做提示即可如下

<div v-if="data.length"> 
    <div v-for="v in data" :key="v">我是数据 {{v}}</div> 
</div>
<div v-else> 
    <div v-for="v in 0" :key="v">我是数据 {{v}}</div>    
</div>

【:empty】属性应用看起来会更优雅,首先在公共样式类中加入带有empty的的css样式,示例如下:

.content:empty { 
    content: '暂无数据';
    display: block; 
    ine-height: 300px; 
    text-align: center; 
    color: gray; 
}

引用类名就可以省略v-if 和 else

<div class="content"> 
    <div v-for="v in data" :key="v">我是数据 {{v}}</div> 
</div>

结束了