CSS基础学习|集创考核第7篇笔记

175 阅读4分钟

CSS高级技巧

元素的显示与隐藏

目的: 让一个元素在页面中消失或者显示出来
场景: 类似网站广告,当我们点击关闭就不见了,但是我们重新刷新页面,会重新出现

display 显示(重点)

display设置或检索对象是否显示或如何显示。

  • display: none 隐藏对象 特点:隐藏之后,不再保留位置。
  • display: block 除了转换为块级元素之外,同时还有显示元素的意思。

实际开发场景:配合后面js做特效,比如下拉菜单,原先没有,鼠标经过,显示下拉菜单, 应用极为广泛

visibility 可见性

设置或检索是否显示对象

visibility:visible ;  对象可视

visibility:hidden;    对象隐藏
  • 特点:隐藏之后,继续保留原有位置。

overflow 溢出

检索或设置当对象的内容超过其指定高度及宽度时如何管理内容。

属性值描述
visible不剪切内容也不添加滚动条
hidden不显示超过对象尺寸的内容,超出的部分隐藏掉
scroll不管超出内容否,总是显示滚动条
auto超出自动显示滚动条,不超出不显示滚动条

实际开发场景

  1. 清除浮动
  2. 隐藏超出内容,隐藏掉,  不允许内容超过父盒子。

显示与隐藏总结

属性区别用途
display隐藏对象,不保留位置配合后面js做特效,比如下拉菜单,原先没有,鼠标经过,显示下拉菜单, 应用极为广泛
visibility隐藏对象,保留位置使用较少
overflow只是隐藏超出大小的部分1. 可以清除浮动 2. 保证盒子里面的内容不会超出该盒子范围

CSS用户界面样式

所谓的界面样式, 就是更改一些用户操作样式,以便提高更好的用户体验。

  • 更改用户的鼠标样式
  • 表单轮廓等。
  • 防止表单域拖拽

鼠标样式

设置或检索在对象上移动的鼠标指针采用何种系统预定义的光标形状。

属性值描述
default小白  默认
pointer小手
move移动
text文本
not-allowed禁止
<ul>
  <li style="cursor:default">我是小白</li>
  <li style="cursor:pointer">我是小手</li>
  <li style="cursor:move">我是移动</li>
  <li style="cursor:text">我是文本</li>
  <li style="cursor:not-allowed">我是文本</li>
</ul>

轮廓线 outline

图片是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。

outline : outline-color ||outline-style || outline-width 

但是我们都不关心可以设置多少,我们平时都是去掉的。
最直接的写法是 : outline: 0;   或者   outline: none;

防止拖拽文本域resize

图片

<textarea  style="resize: none;"></textarea>

用户界面样式总结

属性用途用途
鼠标样式更改鼠标样式cursor样式很多,重点记住 pointer
轮廓线表单默认outlineoutline 轮廓线,我们一般直接去掉,border是边框,我们会经常用
防止拖拽主要针对文本域resize防止用户随意拖拽文本域,造成页面布局混乱,我们resize:none

vertical-align 垂直对齐

  • 有宽度的块级元素居中对齐,是margin: 0 auto;
  • 让文字居中对齐,是 text-align: center;

vertical-align 垂直对齐,它只针对于「行内元素」或者「行内块元素」

设置或检索对象内容的垂直对其方式。
vertical-align : baseline |top |middle |bottom 

注意:

vertical-align 不影响块级元素中的内容对齐,它只针对于「行内元素」或者「行内块元素」,

特别是行内块元素, 通常用来控制图片/表单与文字的对齐。

图片、表单和文字对齐

我们可以通过vertical-align 控制图片和文字的垂直关系了。默认的图片会和文字基线对齐。

去除图片底侧空白缝隙

原因: 图片或者表单等行内块元素,他的底线会和父级盒子的基线对齐。

就是图片底侧会有一个空白缝隙。

解决方法:

  • 给img vertical-align:middle | top| bottom等等。 让图片不要和基线对齐。

  • 给img 添加 display:block; 转换为块级元素就不会存在问题了。

溢出的文字省略号显示

white-space

  • white-space设置或检索对象内文本显示方式。通常我们使用于强制一行显示内容
white-space:normal ;默认处理方式

white-space:nowrap ; 强制在同一行内显示所有文本,直到文本结束或者遭遇br标签对象才换行。

text-overflow 文字溢出

  • 设置或检索是否使用一个省略标记(...)标示对象内文本的溢出
text-overflow : clip ;不显示省略标记(...),而是简单的裁切 

text-overflow:ellipsis ; 当对象内文本溢出时显示省略标记(...)

「注意」

一定要首先强制一行内显示,再次和overflow属性  搭配使用

图片

总结三步曲

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