Go to comments

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.

Leave a Reply

换一张