202507 记录平时的一些事情
li 里面嵌套 a 元素
li 的尺寸靠里面的 a 元素撑起来,
a 元素是 inline 不能设置宽高,但是可以设置 line-height 行高和 margin 和 padding,
此时,如果 a 元素不设置 display: block 对尺寸和位置没有影响,但是对背景色有些影响
<style>
*{margin: 0;padding: 0;}
ul{
list-style: none;
position: absolute;
left: 200px;
height: 40px;
border: 1px solid orangered;
}
li{
float: left;
}
ul::after{
content: "";
display: block;
clear: both;
}
a{
display: block; /* 此时该属性影响背景 */
height: 40px;
line-height: 40px;
background-color: yellow;
padding: 0 20px;
}
</style>
<ul>
<li><a href="javascript:void(0);">秒杀</a></li>
<li><a href="javascript:void(0);">优惠券</a></li>
<li><a href="javascript:void(0);">PLUS会员</a></li>
</ul>a 元素的排列
因为 a 元素默认沿基线对齐,而基线的排列影响位置,此时需要设置 float: left 浮动
input 框
不写 HTML 文档结构,设置 input 的宽高,好像没有生效
<style>
#form{
border: 2px solid #e2231a;
font-size: 12px;
width: 600px;
height: 32px;
}
input{
display: block;
padding: 2px 20px 2px 20px;
width: calc(100% - 44px);
height: 26px;
line-height: 26px;
border:1px solid transparent;
outline: none;
background-color: lightgoldenrodyellow;
}
</style>
<div id="form">
<input type="text" />
</div>把 html 文档结构写上,input 设置的宽高生效了
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>input</title>
</head>
<body>
<style>
#form{
border: 2px solid #e2231a;
font-size: 12px;
width: 600px;
height: 32px;
}
input{
display: block;
padding: 2px 20px 2px 20px;
width: calc(100% - 42px);
height: 26px;
line-height: 26px;
border:1px solid transparent;
outline: none;
background-color: lightgoldenrodyellow;
}
</style>
<div id="form">
<input type="text" />
</div>
</body>
</html>二零二五年八月三日
两个西瓜,祝好 NW765
依然是碧水青山
20250810
潜龙勿用
20250811
京东弹出菜单的左右两布局
dt 是固定宽,dd 不是固定宽,
京东用的是定位的方法,先用 padding-left 给 dt 占出空间,然后设置 dt 定位
其中有一个地方,dd 元素为什么设置 overflow: hidden 呢?这里奇怪了一下,原来 dd 里面的 span 是浮动元素,目的是为了清除浮动
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jd菜单布局</title>
<style>
body,dl,dd,dt{
padding: 0;
margin: 0;
}
body{
font: 12px / 1.5 PingFang SC, system-ui, -apple-system;
}
.detail{
padding: 10px;
width: 700px;
background: lightyellow;
}
dl{
position: relative;
padding-left: 80px;
}
dt{
overflow: hidden;
position:absolute;
left: 0;
top: 5px;
}
dd{
overflow: hidden; /* 也可以设置display: flow-root直接激活bfc */
background-color: bisque;
padding: 5px 0;
}
span{
float: left;
margin: 3px 0;
padding: 0 5px;
height: 16px;
line-height: 16px;
white-space: nowrap;
}
</style>
</head>
<body>
<div class="detail">
<dl>
<dt>电视</dt>
<dd>
<span>游戏电视</span><span>艺术电视</span><span>K歌电视</span><span>miniled电视</span><span>会议电视</span>
<span>电视音响套装</span><span>75寸电视</span><span>85寸电视</span><span>98寸电视</span><span>100寸电视</span>
<span>电视挂架</span><span>电视遥控器</span><span>电视推车</span><span>触控电视</span><span>门店电视</span>
</dd>
</dl>
<dl>
<dt>空调</dt>
<dd>
<span>新风空调</span><span>以旧换新</span><span>空调挂机</span><span>空调柜机</span><span>新一级能效挂机</span>
</dd>
</dl>
</div>
</body>
</html>用浮动实现同样的效果
dd 元素的宽度不是固定的,不能设置浮动,而是设置 overflow: hidden 激活 bfc 实现两栏布局
<style>
body,dl,dd,dt{
padding: 0;
margin: 0;
}
.clearfix::after{
content: "";
clear: both;
display: block;
}
body{
font: 12px / 1.5 PingFang SC, system-ui, -apple-system;
}
.detail{
padding: 10px;
width: 700px;
background: lightyellow;
}
dt{
width: 80px;
margin-top: 5px;
float: left;
}
dd{
/* float: left;这里不用浮动,通过overflow:hidden激活bfc实现两栏布局,同时请求span浮动 */
overflow: hidden;
background-color: bisque;
padding: 5px 0;
}
span{
float: left;
margin: 3px 0;
padding: 0 5px;
height: 16px;
line-height: 16px;
white-space: nowrap;
}
</style>
<div class="detail">
<dl class="clearfix">
<dt>电视</dt>
<dd>
<span>游戏电视</span><span>艺术电视</span><span>K歌电视</span><span>miniled电视</span><span>会议电视</span>
<span>电视音响套装</span><span>75寸电视</span><span>85寸电视</span><span>98寸电视</span><span>100寸电视</span>
<span>电视挂架</span><span>电视遥控器</span><span>电视推车</span><span>触控电视</span><span>门店电视</span>
</dd>
</dl>
<dl class="clearfix">
<dt>空调</dt>
<dd>
<span>新风空调</span><span>以旧换新</span><span>空调挂机</span><span>空调柜机</span><span>新一级能效挂机</span>
</dd>
</dl>
</div>
Leave a comment
0 Comments.
