关于mixins.css和viriables.css
来源:2-3 利用CSS技巧实现搜索及 banner 区域布局
我不是胖球球
2021-11-02 11:46:38
问题描述:
input框的内容单独设置了背景色和字体颜色之后,和search框的背景与字体颜色是不是可以封装成一个mixin,或者写到viriables文件中?我有点搞不清什么时候弄成mixin,什么时候封装成单独的css再引入
相关截图:



相关代码:App.vue
<template>
<div class="wrapper">
<div class="position">
<span class="iconfont position__icon"></span>
北京理工大学国防科技园2号楼10层
<span class="iconfont position__notice"></span>
</div>
<div class="search">
<span class="iconfont"></span>
<input type="text" class="search__text" value="山姆会员商店优惠商品"/>
</div>
<div class="banner">
<img
class="banner__img"
src="http://www.dell-lee.com/imgs/vue3/banner.jpg"
alt=""
/>
</div>
</div>
<div class="docker">
<div class="docker__item docker__item--active">
<div class="iconfont"></div>
<div class="docker__title">首页</div>
</div>
<div class="docker__item">
<div class="iconfont"></div>
<div class="docker__title">购物车</div>
</div>
<div class="docker__item">
<div class="iconfont"></div>
<div class="docker__title">订单</div>
</div>
<div class="docker__item">
<div class="iconfont"></div>
<div class="docker__title">我的</div>
</div>
</div>
</template>
<style lang="scss">
// scss区域引入另外一个scss的变量文件(一些通用的css)
@import "./style/viriables.scss";
// 将文字不换行显示……封装成一个mixin,引入mixins.scss文件
@import "./style/mixins.scss";
.wrapper {
position: absolute;
left: 0;
top: 0;
bottom: .5rem;
right: 0;
padding: 0 .19rem;
}
.position {
position: relative;
padding: .16rem .24rem .16rem 0;
line-height: .22rem;
font-size: .16rem;
@include ellipsis;
.position__icon {
position: relative;
font-size: .2rem;
top: .01rem;
}
.position__notice {
position: absolute;
right: 0;
font-size: .2rem;
top: .17rem;
}
color: $content-fontcolor;
}
.search {
margin-bottom: .12rem;
line-height: .32rem;
background: #f5f5f5;
border-radius: .16rem;
color: #b7b7b7;
.iconfont {
position: relative;
font-size: .18rem;
display: inline-block;
top: .02rem;
padding: 0 .1rem 0 .16rem;
}
.search__text {
display: inline-block;
font-size: .14rem;
// 去除input默认边框
border:none;
// outline:none;
// input标签有默认color和background,无法继承父元素样式,需单独设置字体&背景颜色。
background: #F5F5F5;
color: #b7b7b7;
}
}
.banner {
height: 0;
overflow: hidden;
padding-bottom: 25.4%;
&__img {
width: 100%;
}
}
.docker {
position: absolute;
display: flex;
box-sizing: border-box;
padding: 0 .18rem;
left: 0;
bottom: 0;
height: .49rem;
width: 100%;
border-top: .01rem solid #f1f1f1;
color: $content-fontcolor;
&__item {
flex: 1;
text-align: center;
.iconfont {
font-size: .18rem;
margin: .07rem 0 .02rem 0;
}
&--active {
color: #1fa4fc;
}
}
&__title {
// Chrome浏览器解析字体最小为12px,需修改为10px,太小了所以显示的是最小12px。
font-size: .2rem;
transform: scale(0.5, 0.5);
transform-origin: center top;
}
}
</style>1回答
同学你好,解答如下:
1、关于Mixin混入的使用,如果存在部分代码需要经常被反复使用的情况,那么就可以把这部分代码抽离出来,利用Mixin混入实现复用的目的,如图


祝学习愉快!
相似问题