css笔记--4

一,垂直方向的布局

父元素的高度不指定默认就会被子元素撑开(子元素多高父元素多高)
定义了高度则就是定义了的高度
没有水平方向必须满足的等式,比较简单

 子元素是在父元素的内容区中排列的,若子元素的高度超过了父元素的高度,则子元素会从父元素的内容区溢出。
使用overflow属性来设置父元素如何处理溢出的子元素
overflow:visible;未设置时此为默认值 设置了也是即子元素会从父元素中溢出
overflow:hidden;溢出的内容不会显示(这种方式不太好)
overflow:scroll;生成两个垂直和水平滚动条,可以查看整个内容
overflow:auto;根据需要生成滚动条,比scroll灵活
overflow-x:设置水平方向的溢出
overflow-y:设置垂直方向的溢出
 

<style>
        .box1{
            width: 200px;
            height: 200px;
            background-color:rgb(255, 188, 170);
            border: black solid 5px;
        }
        .box2{
            width: 50px;
            height: 300px;/*子元素比父元素高度高*/
            background-color:rgb(94, 255, 0);
            overflow: auto;/*根据需要提供滚动条*/
        }
        </style>
<body>
    <div class="box1">
        <div class="box2">xayda xayda  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
            yyyyyyyyyyyyyyyyyyyyyyy  dddddddddddddddddddddddddddd
    aaaaaaaaaaaaaaaaaaaa </div>
    </div>
    </body>
            

二,外边距的折叠

垂直外边距的重叠(折叠)
相邻的垂直方向的外边距会发生重叠方向
1.兄弟元素
重叠的外边距会取较大的外边距值
特殊情况: 一正一负 取两者相加 两者都为负值 取绝对值较大的
注:兄弟元素外边距的重叠,是对开发有利的,不用太过修改

 <style>
        .box1{
            width: 200px;
            height: 200px;
            background-color:#bfa;
            margin-bottom: 50px;/*下边距 使该元素的下方元素向下移动*/
        }
        .box2{
            width: 200px;
            height: 200px;
            background-color:blue;
            margin-top: 50px;/*上边距 使该元素向下移动*/
        }
        </style>
<body>
    <div class="box1"></div>
    <div class="box2"> </div>
</body>
            

一个元素设置了下外边距,一个元素设置了上边距,理应元素直接距离应该是两者相加50+50=100(px) 但是由于外边距的重叠 只能显示50px 如图
中间为50而不是100px,两个元素是兄弟元素 ,会去取较大值。

2.父子元素
相邻外边距 上边距 子元素会传递给父元素
即:给子元素设置外边距 父元素也会有相同外边距 一起移动
父子元素的重叠会影响页面布局,我们需要进行处理。

问题如图: 想要让蓝色的子元素向下移动到绿色父元素的底部

.box1{
    width: 200px;
    height: 200px;
    background-color:#bfa;
}
.box2{
    width: 100px;
    height: 100px;
    background-color:blue;
    margin-top: 100px;/*设置一个上外边距*/
}

.clearfix::before,
.clearfix::after{
content:'';/* content 为before after伪元素内添加元素  这里指添加一个空*/
display:table;/*表格 也可以理解把伪元素行内元素转为块元素*/
clear:both;/*消除高度塌陷的影响*/
}

三, 行内元素的盒子模型

块状元素如div 行内元素如span 超链接
行内元素特点:
不支持设置宽度width和高度height
可以设置padding(内边距) border(边框)margin(外边距)
但是在垂直方向不会影响页面的布局,即只对水平上起作用。
水平上的总的距离都是相加值,不像垂直方向外边距那样麻烦。
如果非要设置行内元素的宽高
则可以用display:显示元素的类型

display:inline 将元素设置为行内元素
display:block 将元素设置为块状元素
display:inline-block 将元素设置为行内块元素
行内块元素既可以设置宽度和高度,又不会独占一行,使一行中还可以有其他的元素。但行内块元素也兼具了两者的缺点,开发时少用。
4.display:table 将元素设置为一个表格
5.display:none 将元素不在页面中显示,不会占据页面的位置。


 效果如图,转化为块状元素即可设置它的宽和高

四,浏览器的默认样式 

1)通常情况下,浏览器都会为元素设置一些默认样式,默认样式的存在会影响页面的布局,通常情况下编写网页时必须要去除浏览器的默认样式(pc端的页面)

2)代码处理

*{
margin:0;
padding:0;
}
ul{
list-style:none;
}

3)重置样式表 

专门用来对浏览器的样式进行重叠

reset.css直接去除了浏览器的默认样式

nomalize.css对默认样式进行了统一

 五,京东图片列表

1)重置样式

2)用<ul></ul>和<li></li>标签,每个<li></li>标签里都嵌套一个超链接标签和图像标签

3)CSS:body设置背景颜色;ul用类选择器设置宽度和高度、用overflow的hidden属性裁剪、设置外边距使图像居中、设置背景颜色;li用类选择器设置外边距(每个图像之间由距离);设置图片的大小

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>图片列表</title>
   <style>
    *{
        margin:0;
        padding:0;
    }
    body{
        background-color: antiquewhite;
    }
    .img-list{
        width:190px;
        height:595px;
        overflow:hidden;
        margin:50px auto;
        background-color: hsl(133, 69%, 42%);
    }
    .img-list li:not(:last-child){
        margin-bottom: 9px;
    }
    .img-list img{
width: 100%;
    }
   </style>
</head>
<body>
    <ul class="img-list">
        <li>
            <a href="javascript:;">
                <img src="C:\Users\沙依旦木.阿布拉\Desktop\34c6d70b444634eb.jpg.avif" alt="">
            </a>
        </li>
 
        <li>
            <a href="javascript:;">
                <img src="C:\Users\沙依旦木.阿布拉\Desktop\59d1f9a282bb6c8c.png!cc_290x370.avif" alt="">
            </a>
        </li>
 
        <li>
            <a href="javascript:;">
                <img src="C:\Users\沙依旦木.阿布拉\Desktop\dc9928f36ad174e8.png!cc_290x370.avif"alt="">
            </a>
        </li>
    </ul>
</body>
</html>

六,京东左侧导航栏

HTML

1)创建一个外部的容器

2)nav、div里面嵌套div,ul里嵌套li

3)div里面由多个超链接

CSS


4)设置网页背景颜色

5)设置菜单外部容器(宽度、高度、padding内边距、margin内边距)

6)设置容器背景颜色

7)设置菜单内部的item(高度)

8)为item设置一个鼠标移入的状态(hover)

9)要让一个文字在父元素中垂直居中,只需要将父元素的line-height设置为一个和父元素height同样的值

10)设置item的右内边距,将文字向内移动

11)设置超链接的样式(设置字体的颜色、大小、去除下划线(text-decoration:none;))

12)给item设置字体大小(改变/的大小)

13)设置字体大小

14)设置超链接的hover的颜色样式


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值