css各种使用案例合集(一)

打印 上一主题 下一主题

主题 975|帖子 975|积分 2925

1、文字不换行

   场景1:使 div 标签的文字内容不换行
  代码示例
  1. <div class="nowrap-div">这是一段很长的文字,我们不会让它换行。</div>
复制代码
  1. .nowrap-div {  
  2.   white-space: nowrap;  
  3. }
复制代码
2、步骤条

   场景2:特殊样式的步骤条
  场景效果
  

  代码示例
  1. <template>
  2.   <div>
  3.     <div class="step-tabs">
  4.       <div v-for="(item,index) in tabs" :key="item.title" :class="item.isActive?'tab tab-active':'tab'" @click="changeTab(index)">{{ item.title }}</div>
  5.     </div>
  6.   </div>
  7. </template>
  8. <script>
  9. export default {
  10.   name: 'StepTabs',
  11.   data() {
  12.     return {
  13.       // 5步骤列表
  14.       tabs:[
  15.         {
  16.           isActive:true,
  17.           title:'1.第一步',
  18.         },
  19.         {
  20.           isActive:false,
  21.           title:'2.第二步',
  22.         },
  23.         {
  24.           isActive:false,
  25.           title:'3.第三步',
  26.         },
  27.         {
  28.           isActive:false,
  29.           title:'4.第四步',
  30.         },
  31.         {
  32.           isActive:false,
  33.           title:'5.第五步',
  34.         },
  35.       ],
  36.     };
  37.   },
  38.   methods: {
  39.     changeTab(index){
  40.       this.tabs.map(item=>item.isActive = false);
  41.       this.tabs[index].isActive = true;
  42.     },
  43.   },
  44. };
  45. </script>
  46. <style scoped lang="scss">
  47. .step-tabs{
  48.   display: flex;
  49.   justify-content: space-between;
  50.   margin-bottom: 16px;
  51.   .tab{
  52.     position: relative;
  53.     width: 20%;
  54.     background-color: #e6e8ec;
  55.     text-align: center;
  56.     padding: 8px;
  57.     margin-right: 25px;
  58.     cursor: pointer;
  59.     &::before{
  60.       content: "";
  61.       width: 0;
  62.       height: 0;
  63.       position: absolute;
  64.       left: 0;
  65.       top: 0;
  66.       border: solid 17.5px transparent;
  67.       border-left-color: var(--devui-brand, #fff);
  68.     }
  69.     &::after{
  70.       content: "";
  71.       width: 0;
  72.       height: 0;
  73.       position: absolute;
  74.       right: -34px;
  75.       top: 1px;
  76.       border: solid 17.5px transparent;
  77.       border-left-color: var(--devui-brand, #e6e8ec);
  78.     }
  79.     &:nth-child(1):before{
  80.       content: "";
  81.       width: 0;
  82.       height: 0;
  83.       position: absolute;
  84.       left: 0;
  85.       top: 0;
  86.       border: solid 17.5px transparent;
  87.       border-left-color: var(--devui-brand, #e6e8ec);
  88.     }
  89.     &:nth-last-child(1)::after{
  90.       content: "";
  91.       width: 0;
  92.       height: 0;
  93.       position: absolute;
  94.       right: -38px;
  95.       top: 0;
  96.       border: 0;
  97.     }
  98.   }
  99.   .tab-active{
  100.     color: #fff;
  101.     border: 0;
  102.     background-color: #2C8AEC;
  103.     &::before{
  104.       content: "";
  105.       width: 0;
  106.       height: 0;
  107.       position: absolute;
  108.       left: 0;
  109.       top: 0;
  110.       border: solid 17.5px transparent;
  111.       border-left-color: var(--devui-brand, #fff);
  112.     }
  113.     &::after{
  114.       content: "";
  115.       width: 0;
  116.       height: 0;
  117.       position: absolute;
  118.       right: -34px;
  119.       top: 1px;
  120.       border: solid 17.5px transparent;
  121.       border-left-color: var(--devui-brand, #2C8AEC);
  122.     }
  123.     &:nth-child(1):before{
  124.       content: "";
  125.       width: 0;
  126.       height: 0;
  127.       position: absolute;
  128.       left: 0;
  129.       top: 0;
  130.       border: solid 17.5px transparent;
  131.       border-left-color: var(--devui-brand, #2C8AEC);
  132.     }
  133.   }
  134. }
  135. </style>
复制代码
3、box-shadow阴影

   场景3:给div标签加上阴影
  场景效果
  

  基本语法
  1. element {  
  2.   box-shadow: offset-x offset-y blur spread color inset;  
  3. }
复制代码


  • offset-x:阴影的水平偏移量。正值向右偏移,负值向左偏移
  • offset-y:阴影的垂直偏移量。正值向下偏移,负值向上偏移
  • blur:阴影的含糊半径。值越大,阴影越含糊。假如不设置(默以为 0),则阴影的边缘是清晰的
  • spread:阴影的扩展半径。正值会使阴影扩展并变得更大,负值会使阴影收缩并变得更小,默以为 0
  • color:阴影的颜色
  • inset:将外部阴影(outset)改为内部阴影。假如指定了这个值,则阴影会出现在元素内容的内侧,而不是外侧
  代码示例
  1. <div class="box">
  2.   <div class="box1">外部阴影</div>
  3.   <div class="box2">内部阴影</div>
  4.   <div class="box3">多个阴影</div>
  5. </div>
复制代码
  1. .box{
  2.   width: 100%;
  3.   display: flex;
  4.   justify-content: space-around;
  5.   margin-top: 20px;
  6.   line-height: 100px;
  7.   text-align: center;
  8.   color: #fff;
  9. }
  10. .box1 {  
  11.   width: 100px;  
  12.   height: 100px;  
  13.   background-color: rgb(56, 184, 56);  
  14.   box-shadow: 10px 10px 5px rgba(0, 0, 0, 0.6);
  15. }
  16. .box2 {  
  17.   width: 100px;  
  18.   height: 100px;  
  19.   background-color: skyblue;  
  20.   box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.5);  
  21. }
  22. .box3 {  
  23.   width: 100px;  
  24.   height: 100px;  
  25.   background-color: red;  
  26.   box-shadow:   
  27.     10px 10px 5px rgba(0, 0, 0, 0.6), /* 第一个阴影 */  
  28.     -10px -10px 15px rgba(255, 0, 0, 0.4); /* 第二个阴影 */  
  29. }
复制代码
4、数据大屏方格配景

   场景4:数据大屏的配景由深蓝色方块、灰白色边框的格子组成,而且要自适应各种屏幕巨细
  场景效果
  

  代码示例
  GridBack.vue页面
  1. <template>
  2.   <div>
  3.     <div class="grid-background"></div>
  4.   </div>
  5. </template>
  6. <style lang="scss" scoped>
  7. @import '@/styles/index.scss';
  8. body{
  9.   margin: 0;
  10. }
  11. .grid-background {
  12.   width: vw-from-design(1920);/* 将1920px转换为vw */
  13.   height: vh-from-design(1080);
  14.   background-color: #012B5D;
  15.   /* 设置背景大小为10px的格子,这样可以控制格子的大小 */  
  16.   background-size: 50px 50px;
  17.   
  18.   /* 使用两个线性渐变来创建水平和垂直的线条效果 */  
  19.   /* 第一个渐变创建水平线条(灰色和透明交替) */  
  20.   /* 第二个渐变创建垂直线条(同样灰色和透明交替),并通过background-position偏移来避免与水平线条重合 */
  21.   background-image:   
  22.     linear-gradient(90deg, rgba(58, 150, 225, 0.225) 3%, transparent 0),  
  23.     linear-gradient(rgba(58, 150, 225, 0.225) 3%, transparent 0);  
  24.    
  25.   /* 确保背景图像覆盖整个元素 */  
  26.   background-position: 0 0, 0 1px; /* 偏移垂直渐变以避免与水平渐变重合 */  
  27.   /* 确保背景图像不会重复 */
  28.   background-repeat: repeat;
  29. }
  30. </style>
复制代码
src\styles\index.scss封装方法
  1. @use "sass:math";
  2. // 默认设计稿的宽度
  3. $designWidth: 1920;
  4. // 默认设计稿的高度
  5. $designHeight: 1080;
  6. // px 转为 vw 的函数
  7. @function vw-from-design($px) {
  8.   @return math.div($px, $designWidth) * 100vw;
  9. }
  10. // px 转为 vh 的函数
  11. @function vh-from-design($px) {
  12.   @return math.div($px, $designHeight) * 100vh;
  13. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

水军大提督

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表