css元素自动换行_CSS 知识总结

一、CSS介绍

  • CSS指层叠样式表,其作用是给HTML提供了一种样式描述,定义了其中元素的显示方式。
  • CSS使用最广泛是2.1版本,CSS3之后是2.1各模块的升级版

二、CSS语法

选择器 {
   属性名:属性值;属性名:属性值;
   /*注释*/
}

注意事项

  • 所有符号都是英文符号,如果写错了,浏览器会警告
  • 区分大小写,a 和 A 是不同的东西
  • 没有 // 注释
  • 最后一个分号可以省略,但建议不要省略
  • 任何地方写错了,都不会报错,浏览器会直接忽略

三、调试方法

  1. W3C在线验证器
  2. VScode看代码颜色
  3. Webstorm看代码颜色
  4. 使用浏览器的开发者工具查看警告
  5. Border调试法(最重要,做法是在某元素后添加border,若边框没出现,说明选择器错了或者语法错了

四、文档流

文档流就是文档流动方向

1、流动方向

  • inline 元素从左到右,到达最右边才会换行
  • block 元素从上到下,每个都另起一行
  • inline-block 也是从左到右,每个元素成块在一行

2、宽度

  • inline 宽度为内部inline元素的和,不能用width指定
  • block 默认自动计算宽度,可用width指定
  • inline-block 结合前两者特点,可用width指定

3、高度

  • inline 高度由line-height间接决定,与height无关
  • blokc 高度由内部文档流元素决定,可以设置height(脱离文档流后不算高度,float 与 position:absolut/fixed可以让元素脱离文档流)
  • inline-block 跟block类似,可以设置height

4、文档流特殊情况:对block 内容超出 height 的高度,可以使用overflow弥补

overflow:hidden /*隐藏超出内容*/
overflow:visible /*直接显示溢出内容*/
overflow:scroll /*有滚轮,但不超出时都有滚轮*/
overflow:auto /*scroll的升级版*/

五、盒模型(box-sizing)

1、类型

  • context-box 内容盒模型-内容就是盒子的边界
  • border-box 边框盒模型-边框才是盒子的边界

2、宽度

  • context-box width=内容宽度
  • border-box width=内容宽度+padding+border

3、推荐

border-box更好用,因为可以同时指定内容、padding、border的宽度

193287c69f04392c7d56a54416cd585c.png

5、小知识

margin合并

  • 父子上下margin会合并
  • 兄弟margin会合并

阻止合并的方法

  • 父子合并用padding/border、overflow:hidden、display:flex挡住
  • 兄弟合并用inline-block消除

六、CSS布局

1、float布局

步骤:

子元素css里加上float:left和width

在父元素添加clearfix类

.clearfix{
context:' ';
display:block;
clear:both;
}

经验:

  • 设计时会流一些空间或者最后一个不设置width
  • 不需要做响应式,这个时专门为IE准备
  • IE 6/7有双倍margin bug(解决:IE 6/7把margin减半或加上display:inline-block)

2、flex布局

/*重点记住*/
/*父元素变成flex容器*/
.container{
    display: flex;/*or inline-flex*/
}
/*改变容器里item流动方向*/
.contant{
    flex-direction:row|column; /*item row横排、column竖排*/
}
/*item换行*/
.contant{
    flex-wrap:wrap;
}
/*item 横排对齐方式*/
.item{
    justify-content:center/space-between;/*横排 居中对齐 左右对齐*/
}
/*item 竖排对齐方式*/
.item{
    align-items:center;/*竖排居中对齐*/
} 

3、grid布局

/*重点记住*/
/*父元素变成grid容器*/
.container{
    display: grid;/*or inline-flex*/
}
/*行列设置*/
.container{
    grid-template-columns:40px 50px auto 50px 50px;/*列宽40px 50px 自动 50px 40px*/
    grid-template-rows:25% 100px auto;/*行宽25% 100px 自动*/
    /*还可以用fr 一份一份代替 1fr 50px 25% auto*/
}
/*单元格的间隙*/
.container{
    grid-gap:12px /*每个格上下左右之间间隙12px*/
    grid-row-gap:12px /*每个格左右之间间隙12px*/
    grid-column-gap:12px /*每个格上下之间间隙12px*/
}

/*快速布局 grid-template-areas*/
.container{
    grid-template-areas:
       "A A B"
       "C C B"
       "D D D";
}
.item1/2/3/4{
    grid-area:A/B/C/D;   /*例子 分item1 item2 item3 item4 类,grid-area属性为 A B C D*/
}

七、CSS定位

1、div的分层(从最底层到最顶层)

z-index:-1>background>border>块级子元素>浮动元素>内联子元素>z-index:1;

2、position

  • position:relative 相对定位,一般给absolute元素做爸爸,配合z-index(层叠)
  • positio:absolute 绝对定位,脱离原来位置另其一层(关闭按钮),鼠标提示,配合z-index,要善用left:100%、left:50%加负margin;
  • position:fixed 悬浮框,烦人广告、回到顶层按钮,不要用到手机上

更多查阅

层叠上下文​developer.mozilla.org
2a202411c4d03ecdae7250c3c64da445.png

八、CSS动画

1、浏览器渲染过程

  • 根据HTML构建HTML树
  • 根据CSS构建CSS树
  • 将两棵树合并成一颗渲染树
  • Layout布局
  • Paint绘制
  • Compose合成

45322a76e00583df6aa2054c772033d3.png

2、CSS 动画的两种做法

a.transform 图形变换(先介绍)

/*位移 translate*/
transform:translateX(50px); /*X方向右移动50px*/
transform:translateY(50px); /*Y方向上移动50px*/
transform:translateZ(50px); /*Z方向上移动50px*/
/*z轴要添加视点,perspective:1000px */
transform:translate(x,y);
transform:translate3d(x,y,z);
/*缩放 scale*/
transform:scale(1.5); /*放大1.5倍*/
transform:scale(1.5,0.5); /*X方向放大1.5倍,Y方向放大0.5倍*/
transform:scaleX(1.5); /*X方向放大1.5倍*/
transform:scaleY(1.5); /*Y方向放大1.5倍*/
/*旋转 rotate*/
transform:rotate(360deg);/*顺时针旋转360度*/
transform:rotateX(60deg);/*按X轴顺时针旋转60度*/
transform:rotateY(60deg);/*按Y轴顺时针旋转60度*/

b.transition 过渡

  • 作用:补充中间帧
  • 语法:transition:属性 时长 过度方式 延迟
  • dispaly:none=>block 无法过渡 改成visibility:hidden=>visible

c.animation

animation 与 @keyframes 配合

animation:时长 过渡方式 延迟 次数 方向 填充模式 是否暂停 动画名

语法:

animation: 1.5s infinite forwards xxx;

@keyframes xxx{
0% {
    transform:none;
  }
66% {
    transform:tranlateY(200px);
  }
100%{
    transform:translateX(200px);     
}

本篇文章版权归本人和饥人谷所有,转载请注明出处

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值