一、塌陷

1.当position设置为:absolute或者fixed时,元素的display会转换为block。(设置float也会产生这样的效应)
2.正常情况下,div会被内容撑开,但是如果设置了1.的情况下,父元素就会产生塌陷,失去高度。

解决办法:

给父元素设置高度。
给父元素设置overflow: hidden;

二、文本的自动换行

对于那种长单词,会超出元素的实际宽度。

解决办法

word-break:break-all;

三、文本溢出部分隐藏

解决办法

overflow: hidden;

四、溢出打点

4.1 单行文本打点

p{
width: 200px;
overflow: hidden;
white-space: nowrap; /*不换行*/
text-overflow: ellipsis; /*溢出部分点样式*/
}

4.2 多行文本溢出打点

p{
width: 200px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 3; /*行数*/
-webkit-box-orient: vertical;
}

五、flex布局

当设置了display: flex;后,那么子元素的float、clear和vertical-align属性失效。
flex布局,分为容器和项目两个部分。一般而言,容器就是父元素,项目就是该父元素下的子元素。
(1)flex-direction: row(默认)| row-reverse | column | column-reverse
决定主轴方向,也就是定义容器元素是行方向排列还是列方向排列,
并且定义它的起点方向,例如行方向是从左向右还是从右向左。
反之,列方向是从上到下还是相反呢。(row是行,column是列。)

(2)flex-wrap: nowrap(默认) | wrap | wrap-reverse
决定是否都拍在一行(列)里,也就是是否换行。
以行为例有三种情况,不换行、换行(第一行在上方),换行(第一行在下方)

(3)flex-flow: row nowrap(默认)
这是flex-direction属性和flex-wrap属性的简写形式,
第一个参数定义排列方式,第二个参数定义是否换行。

(4)justify-content: flex-start | flex-end | center | space-between | space-around
调整主轴方向上项目的对齐方式。
以行向排列为例,可以设置为靠左对齐,靠右对齐,水平居中对齐。
还有两个特殊的:
space-between(两端对齐,相当于文本对齐【text-align】里的justify);
space-around(元素两侧间隔相等,且比它与边框的间隔大一倍)

(5)align-items: flex-start | flex-end | center | initial(从父元素继承)
调整交叉轴方向上的项目对齐方式。
如果行方向是主轴方向,那么列方向就是交叉轴方向。
以行方向为例,可以设置垂直在上,垂直在下,垂直居中。
两个特殊的:
baseline(项目元素第一行文字的基线对齐);
stretch是默认的(如果项目元素没有设置高度,那么它就会自动拉伸高度至整个容器高度)

六、rem适配方案

使用 rem 单位来定义文字的大小最大的问题在于这些值有点难以使用。让我们来看一个例子,假设根元素的文字大小是 16px,我们常用的文字大小转换为 rem 值如下:

  • 10px = 0.625rem

  • 12px = 0.75rem

  • 14px = 0.875rem

  • 16px = 1rem (base)

  • 18px = 1.125rem

  • 20px = 1.25rem

  • 24px = 1.5rem

  • 30px = 1.875rem

  • 32px = 2rem

动态修改font-size:

媒体查询方式

@media screen and (max-width: 360px) and (min-width: 321) {
html : {font-size: 24px}
} @media screen and (max-width: 320px) {
html : {font-size: 20px}
}

js代码控制

let htmlWidth = document.documentElement.clientWidth || document.body.clientWidth;

let htmlDom=document.getElementByTagName('html')[0];

htmlDom.style.fontSize = htmlWidth/10 +'px';

sass计算

@function px2rem($px) {
$rem: 37.5px;//基准值,iPhone为参考375/10
@return ($px / $rem) _rem;
} width: px2rem(50px);

七、元素居中

    1. 文本(img也是)元素水平居中 text-align: center;

    2. 块级元素水平居中 margin: 0 auto;

    3. 单行文本垂直居中 设置line-height和div的height

    4. 不确定高度的文本垂直居中 使用padding-top和padding-bottom

    5. 确定高度的块级元素垂直居中 position: absolute; top:50%; margin-top: -高度的一半;

    6. 绝对定位实现垂直居中 position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto;

    7. 给父元素设置 display: table-cell; vertical-align: middle;

    8. css3 设置完定位和top,left后设置 transform: translate(-50%,-50%);

    9. 弹性盒子(有兼容问题)

CSS中的一些细节的更多相关文章

  1. 原来css中的border还可以这样玩

    原来css中的border还可以这样玩 前面的话: 在看这篇文章之前你可能会觉得border只是简单的绘制边框,看了这篇文章,我相信你也会跟我一样说一句"我靠,原来css中的border还可 ...

  2. CSS特异性(CSS Specificity)的细节之CSS样式权重的计算与理解(CSS样式覆盖规则)

    本篇讲解CSS特异性(CSS Specificity)的细节,也就是CSS样式选择器的权重计算 通过计算选择器的权重(weight)最终决定哪个选择器将获得优先权去覆盖其他选择器的样式设定,即“优先原 ...

  3. css中的border还可以这样玩

    在看这篇文章之前你可能会觉得border只是简单的绘制边框,看了这篇文章,我相信你也会跟我一样说一句"我靠,原来css中的border还可以这样玩".这篇文章主要是很早以前看了别人 ...

  4. CSS遮罩——如何在CSS中使用遮罩

    Css遮罩是2008年4月由苹果公司添加到webkit引擎中的.遮罩提供一种基于像素级别的,可以控制元素透明度的能力,类似于png24位或png32位中的alpha透明通道的效果. 图像是由rgb三个 ...

  5. CSS中Position属性

    也许你看到这个标题觉得很简单,确实这是一篇关于CSS中Position属性基础知识的文章,但是关于Position的一些细节也许你不了解. 1.简介 position有五个属性: static | r ...

  6. 你所不知道的 CSS 滤镜技巧与细节

    承接上一篇你所不知道的 CSS 动画技巧与细节,本文主要介绍 CSS 滤镜的不常用用法,希望能给读者带来一些干货! OK,下面直接进入正文.本文所描述的滤镜,指的是 CSS3 出来后的滤镜,不是 IE ...

  7. 关于CSS中的float可能出现的小问题

    关于CSS中的float可能出现的小问题 前言:最近学习CSS的float所遇到点小问题,然后顺便分享给大家. 一.什么是CSS以及float (一) CSS概述 CSS是层叠样式表(英文全称:Cas ...

  8. 你所不知道的 CSS 阴影技巧与细节 滚动视差?CSS 不在话下 神奇的选择器 :focus-within 当角色转换为面试官之后 NPOI 教程 - 3.2 打印相关设置 前端XSS相关整理 委托入门案例

    你所不知道的 CSS 阴影技巧与细节   关于 CSS 阴影,之前已经有写过一篇,box-shadow 与 filter:drop-shadow 详解及奇技淫巧,介绍了一些关于 box-shadow  ...

  9. [转]CSS遮罩——如何在CSS中使用遮罩

    特别声明:此篇文章由D姐根据Christian Schaefer的英文文章原名<CSS Masks – How To Use Masking In CSS Now>进行翻译,整个译文带有我 ...

随机推荐

  1. CSS清除浮动&内容居中&文字溢出

    学习! 1.CSS清除浮动的方法 (1)添加标签清除浮动: 在浮动元素结尾处,并列的添加标签<div style="clear:both;"></div>. ...

  2. vim编辑器添加插件NERDTree

    0x01 首先在 http://www.vim.org/scripts/script.php?script_id=1658 下载插件 (可能要爬梯,也可以在https://github.com/scr ...

  3. 聊一聊Asp.net过滤器Filter那一些事

    最近在整理优化.net代码时,发现几个很不友好的处理现象:登录判断.权限认证.日志记录.异常处理等通用操作,在项目中的action中到处都是.在代码优化上,这一点是很重要着力点.这是.net中的过滤器 ...

  4. Redis学习笔记(十九) 发布订阅(上)

    Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息,它的发布与订阅功能由PUBLISH.SUBSCRIBE.PSUBSCRIBE等命令组成. ...

  5. Spyder汉化教程

    汉化包下载地址:https://www.lizenghai.com/archives/523.html 1.解压汉化包 2. 3.1.运行汉化补丁PS C:\WINDOWS\system32> ...

  6. $.ajax 中的contentType 坑坑

    $.ajax 设置数据类型 applicaiton/json之后,服务器端(express)就拿不到数据. $.ajax 中的 contentType 和 dataType: contentType ...

  7. Cookie和localStorage的查询、设置、修改及删除

    感谢:链接(视频讲解很详细) cookie:是一种字符串表示的数据,用于在本地记录用户的基本信息(账号,密码等),具有时限性. 数据的具体内容: (图源上文视频链接) localStorage:与co ...

  8. 设计一个简单的多线程(Fecit)_1

    D6高级编程,Fecit ,学习里面关于线程创建的一个例子.,按照那个例子做的,不过本人喜欢将线程实现部分作为单独的单元,主线程再调用它. unit Unit1; interface uses Win ...

  9. qemu-guest-agent详解

    qemu guest agent简称qga, 是运行在虚拟机内部的一个守护程序(qemu-guest-agent.service),他可以管理应用程序,执行宿主机发出的命令. QEMU为宿主机和虚拟机 ...

  10. PDO的事务处理 事务回滚

    <?phpheader('content-type:text/html;charset=utf-8');include 'PdoClass.php';$objPdo=new PdoClass() ...