京东移动端首页(五)

实现如下效果,中间的搜索栏是可以自适应的,所以中间的这个搜索不设置宽度,两边两个小盒子设置宽度,然后中间设置外边距。

 

 中间遇到一个问题,就是设置不了子元素的margin-top的值(因为没有给父元素加上overflow:hidden属性),如下:

原因:在div里面有子元素div1时,若父元素div在没有设置overflow:hidden或者是border属性,则父元素div的margin-top的值为父元素div和子元素div1中的margin-top的最大值。

现象:

 

 注意:div1在div中的margin-top值为0px。

要使div1设置的margin-top生效,那么需要给父元素设置overflow属性。

  • 方法一:设置父元素的overflow属性为hidden。
  • 方法二:设置父元素的border属性,如:border:1px solid red;

 

 但是我这里设置overflow:hidden没有效果,后面用的border来解决的,可以留到以后解决。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <!-- 设置视口标签以及引入初始化样式 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <title>Document</title>
    <!-- 引入css初始化文件 -->
    <link rel="stylesheet" href="./CSS/normalize.css">
    <!-- 引入首页的css -->
    <link rel="stylesheet" href="./CSS/index.css">
</head>
<body>
    <!-- 顶部 -->
   <header class="app">
       <ul>
           <li>
               <img src="./images/5ac9d730N04e6d766.png" alt="">
           </li>
           <li>
               <img src="./images/logo.png" alt="">
           </li>
           <li>打开京东App,购物更轻松</li>
           <li>立即打开</li>
       </ul>
   </header>

   <!-- 搜索 -->
   <div class="search-wrap">
       <div class="search-btn"></div>
       <div class="search"></div>
       <div class="search-logo"></div>
   </div>
</body>
</html>

 

 

body {
    width: 100%;
    min-width: 320px;
    max-width: 640px;
    /* body居中 */
    margin: 0 auto;
    /* 移动端字体14px */
    font-size:14px;
    /* 设置字体类型 */
    font-family: -apple-system,  Helvetica, sans-serif;
    /* 设置行高 */
    line-height: 1.5;
}
/* 因为子元素是浮动的,父元素此时会高度塌陷,所以要设置一下高度 */
.app {
    height: 44px;
}

.app ul li {
    height: 45px;
    background-color: #333333;
    float: left;
    list-style-type: none;
    color: #fff;
}

/* 去掉ul的内外边距 */
.app ul {
    margin: 0;
    padding: 0;
    /* 所有内容垂直居中(包括图片、文字) */
    line-height: 45px;
    text-align: center;
}

/* 子元素选择器 设置宽度 */
.app ul li:nth-child(1) {
    width: 8%;
}
.app ul li:nth-child(1) img {
    width: 10px;
}

.app ul li:nth-child(2) {
    width: 10%;
}

.app ul li:nth-child(2) img {
    width: 30px;
    /* 图片经常要和文字垂直居中对齐,所以经常使用vertical-align属性来进行对齐 */
    vertical-align: middle;
}

.app ul li:nth-child(3) {
    width: 57%;
}

.app ul li:nth-child(4) {
    background-color: #F63516;
    width: 25%;
}

/* 搜索 */
.search-wrap {
    position: relative;
    overflow: hidden;
    border: 1px solid #ccc;
}
.search-btn {
    position: absolute;
    top: 0;
    left: 0;
    background-color: pink;
    width: 40px;
    height: 44px;
}

.search-logo {
    position: absolute;
    top: 0;
    right: 0;
    background-color: purple;
    width: 40px;
    height: 44px;
}
.search {
    height: 30px;
    background-color: skyblue;
    /* 通过设置两边为绝对定位,然后中间设置margin是中间的搜索栏是响应式的 */
    border-radius: 15px;
    margin-top: 7px;
    margin-left: 50px;
    margin-right: 50px;
}

 

posted @ 2022-04-01 14:54  洛飞  阅读(139)  评论(0编辑  收藏  举报