前言
- 系列文章目录:
- 根据视频和PPT整理
- 视频及对应资料:
- HTML CSS
1. margin负值的运用
多个盒子进行浮动,同时为每个盒子设置边框,会导致相邻盒子相接触的位置边框变粗。
此时可以使用margin将其值设置为负数,对上一个的边框进行覆盖,使得相邻位置的边框没有那么粗。
代码示例:
<style> div { float: left; width: 100px; height: 200px; margin-left: -2px; background-color: aquamarine; border: 2px solid black; } </style> <body> <div></div> <div></div> <div></div> <div></div> </body>
实现鼠标经过,盒子的边框颜色改变:
<style> div { position: relative; float: left; width: 100px; height: 200px; margin-left: -2px; background-color: aquamarine; border: 2px solid black; } div:hover { /* 由于后面的盒子覆盖了前面的盒子,所以要将前面的盒子层级提高 */ /* 如果没有有定位,则加相对定位(保留位置) */ /* position: relative; */ border: 2px solid red; /* 如果有定位,则加z-index */ z-index: 1; } </style> <body> <div></div> <div></div> <div></div> <div></div> </body>
2. 文字围绕浮动元素
实现下图效果,是利用浮动元素不会压住文字。
<style> .box { width: 300px; height: 70px; background-color: aquamarine; } .inner { /* 盒子进行浮动 */ /* 由于浮动不会压住文字,可以实现文字在盒子右边环绕显示 */ float: left; width: 120px; height: 70px; margin-right: 5px; background-color: cadetblue; } </style> <body> <div class="box"> <div class="inner"></div> <span>hello world! hello world! hello world! hello world! </span> </div> </body>
3. 行内块的巧妙运用
使用行内块元素实现下图效果:
<style> a { /* 取消 a 标签的默认样式 */ color: #000; text-decoration: none; } .box { /* 行内块元素页面水平居中 */ text-align: center; } .box a { display: inline-block; /* width: 36px; */ height: 36px; /* 内边距 内容与左右边框的距离 */ padding: 0 14px; background-color: #f7f7f7; border: 1px solid #ccc; font-size: 14px; /* 水平居中 */ /* 继承父元素 */ /* text-align: center; */ /* 垂直居中 */ line-height: 36px; } .box a:hover, .box .elp { background-color: #fff; border: none; } /* 输入框 */ .box input { width: 45px; height: 36px; border: 1px solid #ccc; /* 取消获取焦点时的边框样式 */ outline: none; } /* 确定按钮 */ .box button { width: 60px; height: 36px; background-color: #f7f7f7; border: 1px solid #ccc; } </style> <body> <div class="box"> <a href="#"><<上一页</a> <a href="#">1</a> <a href="#">2</a> <a href="#">3</a> <a href="#">4</a> <a href="#">5</a> <a href="#" class="elp">...</a> <a href="#">>>下一页</a> 到第 <input type="text"> 页 <button>确定</button> </div> </body>
4. CSS三角强化
实现下图效果:
三角形实现:
<style> .box1 { width: 40px; height: 80px; padding: 40px; background-color: aquamarine; } .box1 .inner { width: 0; height: 0; /* 顶部的边框可以撑开三角形的高度 */ /* 上边框宽度调大 */ border-top: 80px solid red; border-right: 40px solid black; /* 底部边框为0 可以不让三角形为等腰 */ /* 底部和左边边框宽度为0 */ border-bottom: 0px solid transparent; border-left: 0px solid transparent; } </style> <body> <div class="box1"> <div class="inner"></div> </div> </body>
案例效果实现:
<style> .box { width: 160px; height: 24px; border: 1px solid red; /* 文字居中 */ text-align: center; } .left { /* 自绝父相 */ position: relative; /* 浮动会覆盖盒子,但是不覆盖文字 */ float: left; width: 90px; height: 100%; background-color: red; } .box i { position: absolute; top: 0; right: 0; width: 0; height: 0; /* 边框的颜色 只有右边框有颜色 白色*/ border-color: transparent #fff transparent transparent; border-style: solid; /* 上右边框有宽度 */ border-width: 24px 12px 0 0; } </style> <body> <div class="box"> <span class="left">¥1650<i></i></span> <span class="right">¥5650</span> </div> </body>