<div class="ship">
<div class="ship-body"></div>
</div>
:root{
--seaColor:#54a0ff;
--lineColor: #fff;
--enclosureColor: #000;
}
body {
100%;
height: 100vh;
}
.ship{
position: absolute;
480px;
height: 150px;
left: 50%;
top: 50%;
margin-left: -240px;
margin-top: -75px;
}
.ship-body{
position: absolute;
480px;
height: 150px;
background: var(--seaColor);
transform: rotate(180deg) perspective(3em) rotateX(9deg);
z-index: 1;
left: 50%;
top: 50%;
margin-left: -240px;
margin-top: -75px;
}
这里用到了元素水平垂直居中的另外一种方式,让元素绝对定位,然后left/top=50%,然后margin-left/top=负元素宽度的一半,就可以居中了。
船体镂空梯形
这个也就非常简单了,在制作个小一些的白色梯形,覆盖到船体上方即可。
细心的小伙伴可能就发现了,图一的左右不是一般高,上图却是一样高的,我只能说,你眼神真好!
我们在用伪类,盖住一部分高度去
船名
每艘船都一个属于它自己的名字,和人名一样。比较有名的,如:定远号(亚洲第一舰)、长城号、东风号等。
下面也为咱们的船弄个名字上去
伪类主要是用来主要是用来展示名字两旁的点(专业名词作者不知道,希望有专业的小伙伴告知一下),点的个数主要是用box-shadow
实现。
box-shadow
多阴影的宽高,圆角都继承元素本身的宽高,圆角,这里也就是伪类的宽高,然后box-shadow
主要控制多阴影的个数和位置,前面的值是X坐标,后面的是Y坐标,同时还可以在后面添加颜色。
船锚
到这里还非常简单,就是普通的一个同心圆和一个矩形,组成的形状。然后添加锚的钩子
护栏
护栏有3段,船头、船中和船尾。然后分别调试取得宽度(F12,和现有船体对齐),然后利用box-shadow
一一实现护栏样式。
主要是先用个黑色背景,然后横向画出多个白色正方形块,每个块之间错位一个像素,这样就可以看到块与块之间的黑色部分了。然后top距离容器1px,上方的底色也就可以看到。下地就不用了,让容器高度刚好多出2个像素,底部底色就可以显示出来