热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CSS知识点总结(二)

目录一圆角边框与三角形效果二盒子阴影三元素的显示与隐藏四鼠标样式五防止拖曳文本域六垂直对齐vertical-align七溢出的文字用省略号显示八CSS布局的三种机制补充:CSS书写

目录

一 圆角边框与三角形效果

二 盒子阴影

三 元素的显示与隐藏

四 鼠标样式

五 防止拖曳文本域

六 垂直对齐vertical-align

七 溢出的文字用省略号显示

八 CSS布局的三种机制

补充:CSS书写顺序(建议)




一 圆角边框与三角形效果

border-radius: length /*属性值为数值或百分比的形式*/

该属性可将正方形变成圆,只要将length值设为50%即可;

可将矩形设置成有圆角的矩形,只需将其设置为矩形高度的一般即可;

选择器 {
width: 0;
height: 0;
border-style: solid;
border-width: 10px;
border-color: red transparent transparent transparent
}

用css边框可以模拟三角效果(如下图):

1、 将元素的宽度和高度设置为0;

2、记住:虽然是三角效果,但是4个边框依然要写,保留需要的边框颜色,其余的颜色要改成transparent透明色即可;

3、为保持浏览器兼容性,一般要加上font-size: 0; line-height:0;


二 盒子阴影

box-shadow: 水平阴影 垂直阴影 模糊距离(虚实) 阴影尺寸(影子大小) 阴影颜色 内/外阴影

其中水平阴影和垂直阴影两个属性是必须项,其它项可忽略;默认为外阴影(outset)、(内阴影为inset)


三 元素的显示与隐藏

有三种方式可以将元素进行显示和隐藏设置:


  • display显示

display属性还有设置对象是否及如何显示的功能;

display: none; // 隐藏该元素
display: block; // 除了转换为块级元素外,还有显示元素的意思

利用display属性隐藏的元素,原有位置则不再保留~


  • visibility可见性

visibility: visible; // 设置为该元素可见
visibility: hidden; // 隐藏该对象

设置了visibility属性的元素,原有位置继续保留;


  • overflow溢出

该属性主要是针对当元素的内容超出其指定高度及宽度时如何显示超出内容(前面也有说过哦~);

overflow: visible; // 溢出显示超出内容
overflow: hidden; // 不显示超出内容,即隐藏超出内容;
overflow: scroll; // 不管是否超出内容,总是显示滚动条;
overflow: auto; // 超出则显示滚动条,不超出则不显示滚动条

四 鼠标样式

cursor属性用于设置在元素上移动的鼠标指针将采用何种预定义的光标形状;

cursor: default; // 默认是白色箭头形状
cursor: pointer; // 手掌形状,一般用于可以搜索的元素
cursor: move; // 移动形状
cursor: text; // 竖线形状,表示文本编辑
cursor: not-allowed // 禁止形状,表示禁止编辑

五 防止拖曳文本域

通过属性resize: none;设置即可


六 垂直对齐vertical-align

前面说过,块级元素居中对齐,利用margin: auto;进行设置;

文字居中对齐,利用text-align: center;进行设置;

垂直对齐仅针对于行内元素或行内块元素;经常被用来控制图片/表单与文字的对齐;

vertical-align: baseline; // 针对基线对齐
vertical-align: top; // 针对顶线对齐
vertical-align: middle; // 针对中线对齐
vertical-align: bottom; // 针对底线对齐

七 溢出的文字用省略号显示

white-space: nowrap; // 强制性一行内显示文本
overflow: hidden; // 超出的部分隐藏
text-overflow: ellipsis; // 文字用省略号替代超出的部分

其中,white-space用于设置或检索对象内文本显示方式,默认是normal值,即正常显示,到达边款则换行显示;主要用该属性强制一行显示内容;

text-overflow用于设置或检索是否使用一个省略号标识对象内文本的溢出;默认是clip值,即不显示省略号,直接将溢出的文本隐藏;


八 CSS布局的三种机制

上面提到布局的本质其实就是摆放盒子,CSS布局的三种机制其实是利用该三种机制来设置盒子的摆放位置,三种机制分别是普通流(标准流)、浮动和定位。


  • 普通流(标准流)

普通流即前面提到的块级元素与行内元素,行内块元素(见CSS知识点总结)


  • 浮动

该机制是指将盒子从普通流中浮起来,主要作用是让多个块级盒子一行显示。

为什么需要浮动?

若盒子为div,现在需要将多个div放在一行显示,由于是标准流(块级元素),只能从上到下展示;若将其转换为行内块元素,虽然能实现在一行展示,但是相邻之间会有空白缝隙;另外它也不能实现盒子分别居左居右对齐。因此,这个时候可能就会需要用到浮动;

什么是浮动?

浮动:设置了浮动属性的元素会脱离标准普通流的控制,移动到指定位置的过程。语法如下:

选择器 {
float: 属性值;
}

属性float有三个属性值:none(不浮动,默认值)、left(向左浮动)、right(向右浮动);

浮动有哪些特性?


指设置了浮动的元素,会漂浮在普通流的上面,不占位置


  •  漏

即将自己原来的位置漏给下面标准流的盒子,即不占有原来位置,是脱离标准流的(和上面的特性差不多)


  • 改变元素display属性

浮动元素会生成一个块级框,而不论它本身是何种元素,生成的块级框和前面说到的行内块极其相似(可水平相似,且中间不留空隙,若父级宽度放不下多个子盒子,则会挤到下面去)。

设置了浮动的元素,相互之间总是会紧紧挤在一起~

如何使用?

给浮动的元素添加一个标准流的父亲,这样就可以减少对其它标准流的影响。

则子盒子的浮动参照父盒子对齐,不会与父盒子的边框重叠,也不会超过父盒子的内边距。

 浮动只影响当前及后面的标准流,不会影响设置浮动的元素前面的标准流;

消除浮动?

为什么要消除浮动,这里消除浮动指的是解决父级元素因为子级元素浮动引起内部高度为0的问题(因为一般情况下父级元素的高度是不方便给出的,但子级元素若是浮动的则不占有位置,即没有高度,所以导致父级高度为0,从而影响下面的标准流盒子。)

消除浮动之后,父级元素就会根据子级元素自动检测高度。clear属性用于消除浮动

选择器 {
clear: 属性值 /*属性值有三个 left消除左侧浮动影响 right消除右侧浮动影响 both同时消除左右两侧浮动的影响*/
}

有如下方法:


  • 额外标签法

即在浮动元素末尾添加一个空的标签。


  • 给父级添加overflow属性方法

父级选择器 {
overflow: hidden /*或者auto、scroll*/
}

但是使用hidden属性值,容易将盒子里放不下(超出)的内容隐藏掉,使用auto则会自动检测是否有超出内容,如果有超出内容,则会显示滚动条,如果没有超出内容,则正常显示;使用scroll属性值会在x、y轴上生成滚动条;


  • 使用after伪元素清除浮动

:after方式为额外标签法的升级版;

.clearfix:after {
content: "";
display: block;
height: 0;
clear: both;
visibility: hidden;
}

.clearfix { /*IE6、IE7专有*/
*zoom: 1;
}

  •  使用双伪元素清除浮动

.clearfix:before,
.clearfix:after {
content: "";
display: table;
}
.clearfix:after {
clear: both;
}
.clearfix {
*zoom: 1;
}

  • 定位

将盒子定在浏览器的某一个位置 自由的漂浮在其他盒子的上面---CSS离不开定位,特别是后面的js特效

定位即定位模式+边偏移;

定位模式有四种:静态定位、相对定位、绝对定位、固定定位;

通过top、bottom、left、right属性定义元素的边偏移;


边偏移属性示例描述
toptop:55px顶端偏移量,定义元素相对于其父元素上边线的 距离
bottombottom:86px底部偏移量,定义元素相对于其父元素下边线的距离
leftleft:66px左侧偏移量,定义元素相对于其父元素左边线的距离
rightright:66px右侧偏移量,定义元素相对于其父元素右边线的距离

定位模式通过position属性定义元素的定位模式,语法如下:

选择器 {
position: 属性值;
}

静态定位(static)

静态定位是元素的默认定位方式,即无定位的意思;

设置了静态定位的元素按照标准流特性摆放位置,不用设置边偏移;

相对定位(relative)

相对定位是元素相对于该元素原本应在标准流中的位置来说的;示例:

position: relative;
left: 80px;
top: 120px;

它的特点是设置了相对定位的元素,原本在标准流中的位置会保留;后面的盒子依然以标准流的方式对待它;

绝对定位(absolute)

绝对定位是元素相对于他父级元素来设置元素的位置,即设置了绝对定位的元素,父级元素必定要设置为定位模式才可实现子级元素具有定位效果;

它的特点是:

设置了相对定位的元素完全脱标,不占有原来的位置;

若父元素(不仅指亲生父亲,上辈都可~)没有定位,则以显示的浏览器窗口为准来定位。

另外:原则上父级元素只要是定位即可(绝对、固定或相对定位),但是若设置为绝对定位,则由于绝对定位不占有位置,容易造成后面的元素布局错乱(如下图中右侧布局,下方的元素会上移),因此不建议用绝对定位;而固定定位一般用在设置元素为浏览器固定位置,因此也不用固定位置;所以这就是子绝父相(保证父亲也要占有一定位置)的由来~

固定定位

固定定位可以看做是绝对定位的一种特殊形式,作用是将元素固定在浏览器可视窗口的某个位置,并且使该元素不会随着滚动条一起滚动;

它的特点是:

完全脱标,完全不占位置;

只跟浏览器的可视窗口有关系,跟父元素没有关系,通过浏览器可视窗口与边偏移属性来设置元素的位置;

注意:绝对定位/固定定位的元素不能通过设置margin: auto来设置水平居中;可用如下方式:

可先通过设置left: 50%让元素的左侧移动到父级元素的水平中心位置;

然后再通过margin-left:-一半的自身元素宽度 让元素向左移动到自身宽度的一半;

此处放一下pink老师的神图加深理解(子元素100*200 父元素400*800):

堆叠顺序(z-index)

在使用定位布局(只能用于定位元素)时,可能会出现盒子重叠的请款。应该使用z-index层叠等级属性调的堆叠顺序;

z-index属性分为正整数、负数或0,默认为0,数值越大,盒子越靠上;

若数值相同,则后来者居上;

定位也可以改变display属性

目前display属性可通过三种方式改变:

1、用inline-block转换为行内块;

2、用浮动默认转换为行内块(但是是脱标的);

3、绝对定位和固定定位也可默认转换为行内块(不会触发外边距合并问题);

因此,在设置了如上三种属性后,就可以给盒子设置宽度和高度值喽~


补充:CSS书写顺序(建议)

1、布局定位属性:display / position / float / clear / visibility / overflow / position

2、自身属性: width / height / margin / padding / border / background

3、文本属性:color / font / text-decoration / text-align / vertical-align / white-space / break-word

4、其它属性(CSS3) : content / cursor / border-radius / box-shadow / text-shadow 



推荐阅读
  • 本文详细探讨了使用纯JavaScript开发经典贪吃蛇游戏的技术细节和实现方法。通过具体的代码示例,深入解析了游戏逻辑、动画效果及用户交互的实现过程,为开发者提供了宝贵的参考和实践经验。 ... [详细]
  • 属性类 `Properties` 是 `Hashtable` 类的子类,用于存储键值对形式的数据。该类在 Java 中广泛应用于配置文件的读取与写入,支持字符串类型的键和值。通过 `Properties` 类,开发者可以方便地进行配置信息的管理,确保应用程序的灵活性和可维护性。此外,`Properties` 类还提供了加载和保存属性文件的方法,使其在实际开发中具有较高的实用价值。 ... [详细]
  • 优化Vite 1.0至2.0升级过程中遇到的某些代码块过大问题解决方案
    本文详细探讨了在将项目从 Vite 1.0 升级到 2.0 的过程中,如何解决某些代码块过大的问题。通过具体的编码示例,文章提供了全面的解决方案,帮助开发者有效优化打包性能。 ... [详细]
  • 类加载机制是Java虚拟机运行时的重要组成部分。本文深入解析了类加载过程的第二阶段,详细阐述了从类被加载到虚拟机内存开始,直至其从内存中卸载的整个生命周期。这一过程中,类经历了加载(Loading)、验证(Verification)等多个关键步骤。通过具体的实例和代码示例,本文探讨了每个阶段的具体操作和潜在问题,帮助读者全面理解类加载机制的内部运作。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 在处理大规模数据数组时,优化分页组件对于提高页面加载速度和用户体验至关重要。本文探讨了如何通过高效的分页策略,减少数据渲染的负担,提升应用性能。具体方法包括懒加载、虚拟滚动和数据预取等技术,这些技术能够显著降低内存占用和提升响应速度。通过实际案例分析,展示了这些优化措施的有效性和可行性。 ... [详细]
  • 在C#编程中,数值结果的格式化展示是提高代码可读性和用户体验的重要手段。本文探讨了多种格式化方法和技巧,如使用格式说明符、自定义格式字符串等,以实现对数值结果的精确控制。通过实例演示,展示了如何灵活运用这些技术来满足不同的展示需求。 ... [详细]
  • 如何在PHP中准确获取服务器IP地址?
    如何在PHP中准确获取服务器IP地址? ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案
    深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案 ... [详细]
  • 在本文中,我们将详细介绍如何构建一个用于自动回复消息的XML类。当微信服务器接收到用户消息时,该类将生成相应的自动回复消息。以下是具体的代码实现:```phpclass We_Xml { // 代码内容}```通过这个类,开发者可以轻松地处理各种消息类型,并实现高效的自动回复功能。我们将深入探讨类的各个方法和属性,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 在使用 Qt 进行 YUV420 图像渲染时,由于 Qt 本身不支持直接绘制 YUV 数据,因此需要借助 QOpenGLWidget 和 OpenGL 技术来实现。通过继承 QOpenGLWidget 类并重写其绘图方法,可以利用 GPU 的高效渲染能力,实现高质量的 YUV420 图像显示。此外,这种方法还能显著提高图像处理的性能和流畅性。 ... [详细]
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
  • 分享一款基于Java开发的经典贪吃蛇游戏实现
    本文介绍了一款使用Java语言开发的经典贪吃蛇游戏的实现。游戏主要由两个核心类组成:`GameFrame` 和 `GamePanel`。`GameFrame` 类负责设置游戏窗口的标题、关闭按钮以及是否允许调整窗口大小,并初始化数据模型以支持绘制操作。`GamePanel` 类则负责管理游戏中的蛇和苹果的逻辑与渲染,确保游戏的流畅运行和良好的用户体验。 ... [详细]
author-avatar
伍贤厚_197
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有