成品效果
边框固定
.login_box{
width: 450px;
height: 300px;
background-color: aliceblue;
border-radius: 3px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
}
这段CSS代码定义了一个名为.login_box
的类的样式,它主要用于创建一个登录框的视觉效果。下面是对这段CSS代码每个属性的详细解释:
-
width: 450px;
- 这个属性设置了
.login_box
的宽度为450像素。这意味着登录框在水平方向上会占据450像素的空间。
- 这个属性设置了
-
height: 300px;
- 这个属性设置了
.login_box
的高度为300像素。这决定了登录框在垂直方向上的大小。
- 这个属性设置了
-
background-color: aliceblue;
- 这个属性设置了
.login_box
的背景颜色为aliceblue。Aliceblue是一种淡蓝色调,常用于用户界面设计中,因为它看起来清爽且不过于刺眼。
- 这个属性设置了
-
border-radius: 3px;
- 通过这个属性,
.login_box
的边角会被设置为圆角,圆角的半径为3像素。这有助于创建更加柔和、友好的视觉效果,而不是尖锐的直角。
- 通过这个属性,
-
position: absolute;
- 这个属性将
.login_box
的定位方式设置为绝对定位。绝对定位的元素会脱离其正常文档流,并根据其最近的已定位(即非static定位)祖先元素进行定位。如果没有这样的祖先元素,它将相对于文档的初始包含块(通常是视口)进行定位。
- 这个属性将
-
left: 50%;
- 这个属性将
.login_box
的左边距设置为其父元素宽度的50%。由于使用了绝对定位,这会将登录框的左边缘置于其父元素(或视口)的中心点左侧的位置。
- 这个属性将
-
top: 50%;
- 类似地,这个属性将
.login_box
的上边距设置为其父元素高度的50%。这会将登录框的上边缘置于其父元素(或视口)的中心点上方的位置。
- 类似地,这个属性将
-
transform: translate(-50%,-50%);
- 最后,这个属性通过应用一个转换来微调
.login_box
的位置。translate(-50%,-50%)
将元素向左和向上移动其自身宽度和高度的50%。结合前面的left: 50%;
和top: 50%;
,这实际上将登录框的中心点对齐到其父元素(或视口)的中心点,从而实现了完美的居中效果。
- 最后,这个属性通过应用一个转换来微调
总的来说,这段CSS代码创建了一个宽450像素、高300像素、背景色为aliceblue、具有3像素圆角的登录框,并通过绝对定位和转换实现了在视口中的水平和垂直居中。
边框嵌套图片
.avatar_box{
height: 130px;
width: 130px;
border: 1px solid #eee;
border-radius: 50%;
padding: 10%;
box-shadow: 0 0 10px #dddd;
position: absolute;
left: 50%;
transform: translate(-50%,-50%);
background-color: #fff;
img{
width: 100%;
height: 100%;
border-radius: 50%;
background-color: #eee;
}
}
这段代码定义一个名为.avatar_box
的类的样式,该样式通常用于创建一个圆形头像容器。下面是对这段代码中各个属性的详细解释:
-
height: 130px;
和width: 130px;
: 这两个属性设置了.avatar_box
的高度和宽度都为130像素,确保容器是一个正方形。 -
border: 1px solid #eee;
: 为容器设置了一个1像素宽、实线、颜色为#eee
(浅灰色)的边框。 -
border-radius: 50%;
: 将容器的边框圆角半径设置为50%,这意味着边框的每一个角都会被完全圆化,从而创建一个圆形容器。 -
padding: 10%;
: 尝试为容器设置内边距为容器宽度的10%。 -
box-shadow: 0 0 10px #dddd;
: 为容器添加了一个阴影效果,阴影在水平和垂直方向上都偏移0像素,模糊半径为10像素,颜色为#dddd
(浅灰色)。 -
position: absolute;
: 将容器的定位方式设置为绝对定位。这意呀着.avatar_box
将脱离文档流,并根据其最近的已定位(即,position属性不是static)祖先元素进行定位。 -
left: 50%;
和transform: translate(-50%,-50%);
: 这两个属性一起工作,以确保.avatar_box
在其最近的已定位祖先元素的中心位置。left: 50%
将容器的左边缘置于其包含块的中心(但由于容器的宽度,它实际上会向右偏移其宽度的一半),而transform: translate(-50%,-50%);
则将容器向上和向左移动其自身宽度和高度的50%,从而将其中心与包含块的中心对齐。 -
background-color: #fff;
: 设置容器的背景颜色为白色(#fff
)。
总结
<div class="login_container">
<div class="login_box">
<div class = 'avatar_box'>
<img src="../assets/img/favicon.ico" alt="">
</div>
</div>
</div>
<style lang="less" scoped>
.login_container{
background-color: #2b6b4b;
height: 100%;
}
.login_box{
width: 450px;
height: 300px;
background-color: aliceblue;
border-radius: 3px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
.avatar_box{
height: 130px;
width: 130px;
border: 1px solid #eee;
border-radius: 50%;
padding: 10%;
box-shadow: 0 0 10px #dddd;
position: absolute;
left: 50%;
transform: translate(-50%,-50%);
background-color: #fff;
img{
width: 100%;
height: 100%;
border-radius: 50%;
background-color: #eee;
}
}
}
</style>
这段代码主要使用了CSS(特别是LESS语言)和HTML元素来构建一个具有特定样式的登录界面。下面是对这段代码中涉及的主要技术点的总结:
-
LESS(动态样式语言):
- LESS是一种CSS预处理语言,它扩展了CSS的功能,增加了变量、嵌套规则、混合(mixins)、函数等特性。这使得CSS代码更加模块化、可维护,并允许使用类似于编程语言的特性来编写样式。
- 在这段代码中,LESS的嵌套规则被用来定义
.login_box
内部.avatar_box
的样式,这简化了CSS的编写,避免了重复的选择器。
-
CSS样式:
- 背景颜色:使用
background-color
属性设置元素的背景颜色。 - 尺寸:通过
width
和height
属性设置元素的宽度和高度。 - 边框:
border
属性用于设置元素的边框样式,包括宽度、样式和颜色。 - 边框圆角:
border-radius
属性用于给元素的边框添加圆角效果。 - 定位:
position: absolute;
:将元素设置为绝对定位,使其相对于其最近的已定位(非static)祖先元素进行定位。left
、top
、transform
(包括translate
):用于精确地控制绝对定位元素的位置。transform: translate(-50%, -50%);
常用于将元素居中于其父元素的中心。
- 阴影:
box-shadow
属性用于在元素周围添加阴影效果,增强视觉层次感。
- 背景颜色:使用
-
CSS作用域:
scoped
属性(尽管它是Vue单文件组件中的一个概念,但在这里提及以强调样式的作用域):在Vue单文件组件中,<style scoped>
表示样式只应用于当前组件的根元素及其子元素,防止样式冲突。然而,在纯LESS或CSS文件中,作用域需要通过其他方式实现(如BEM命名法、CSS模块等)。
-
图片样式:
- 在
.avatar_box
内部,img
元素的样式被设置为与.avatar_box
相同的宽度和高度,并应用了圆角边框,以确保图片也是圆形的。尽管设置了background-color
,但这通常不会对<img>
元素生效,因为它会被图片内容覆盖。
- 在