美文网首页
CSS的一些技巧和知识

CSS的一些技巧和知识

作者: 祈念念念 | 来源:发表于2019-01-02 22:02 被阅读0次

title: CSS的一些技巧和知识
date: 2018-09-14 16:58:07
tags: [CSS]
categories: CSS


CCS布局技巧

1. 左右布局

如果有以下html结构,设置左右两栏布局

<div class="parent clearfix">
    <div class="leftChild"></div>
    <div class="rightChild"></div>
</div>

设置浮动

左右布局常用的方法就是为子元素设置浮动,然后在其父元素上使用clearfix类清除浮动。示例代码如下:

.clearfix::after{
    content:"";
    display:block;
    clear:both;
}
.leftChild,
.rightChild{
    float:left;
}

设置position绝对定位

为父元素设置position:relative; 为子元素设置position:absolute 。示例代码如下:

.parent{
  position:relative;
}
.leftChild{
  position:absolute;
  left:0;
  top:0;
}
.rightChild{
  position:absolute;
  left:50%;
  top:0;
}

2. 左中右布局

左中右布局主要方法也是浮动或者绝对定位,不过可以分情况选择其一使用甚至结合使用。

3. 水平居中

内联元素(比如文本和链接)

在块级父容器中让内联元素水平居中,只需设置 text-align: center;

块级元素

让单个块级元素水平居中的方法:先设置块级元素的 width,赋予一个宽度;然后设置块级元素的 margin: 0 auto;

多个块级元素

如果要让多个块级元素在同一水平线上居中,那么可以修改它们的 display: inline-block; 或者父级容器的 display: flex;

<main class="inline-block-horizon-center">
    <div>I'm an element</div>
    <div>I'm an element</div>
    <div>I'm an element</div>
</main>
<main class="flex-horizon-center">
    <div>I'm an element</div>
    <div>I'm an element</div>
    <div>I'm an element</div>
</main>


main div {
    max-width: 125px;
}
.inline-block-horizon-center {
    text-align: center;
}
.inline-block-horizon-center div {
    display: inline-block;
    vertical-align: middle/top;
}
.flex-horizon-center {
    display: flex;
    justify-content: center;
}

如果想让多个块级元素垂直堆栈的水平对齐,依然可以通过设置 margin: 0 auto;

main div {
    margin: 0 auto;
}
main div:nth-child(1) {
    width: 200px;
}
main div:nth-child(2) {
    width: 400px;
}
main div:nth-child(3) {
    width: 125px;
}

4. 垂直居中

内联元素

单行
  • 方法1:设置内联元素的块级父容器的 height 和 line-height 值相等

  • 方法2:对于单行的内联元素,也可以添加等值的 padding-top 和 padding-bottom 实现垂直居中

多行
  • 方法1:对于多行的内联元素,也可以添加等值的 padding-top 和 padding-bottom 实现垂直居中

  • 方法2:使用 flexbox 实现垂直居中,因为对于父级容器为 display: flex 的元素来说,它的每一个子元素都是垂直居中的

块级元素

已知高度

先让元素 绝对定位 到父容器的中心点,然后设置 负向margin,负值的大小为其自身高度的一半 NOTE: 如果父元素设置了padding,则计算 负向margin 时,负值的大小为:其自身高度的一半再加上父元素的内边距

main {
    position: relative;
}
main div {
    position: absolute;
    top: 50%;
    height: 100px;
    margin-top: -50px;
}
未知高度

如果我们不知道块级元素的高度,那么就需要先将元素定位到容器的 中心位置,然后使用 transform 的 translate 属性,将元素的中心和父容器的 中心重合,从而实现垂直居中

main {
    position: relative;
}
main div {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

使用flexbox

高度不定则

div {
    display: flex;
    flex-direction: column;
    justify-content: center; 
}

宽高固定则

div {
    display: flex;
    justify-content: center; 
    align-items: center;  
}

position属性

position的含义是指定位类型,取值类型可以有:static、relative、absolute、fixed、inherit和sticky。

  1. position: static

static(没有定位)是position的默认值,元素处于正常的文档流中,会忽略left、top、right、bottom和z-index属性。

  1. position: relative

relative(相对定位)是指给元素设置相对于原本位置的定位,元素并不脱离文档流,因此元素原本的位置会被保留,其他的元素位置不会受到影响。

  1. position: absolute

absolute(绝对定位)是指给元素设置绝对的定位,相对定位的对象可以分为两种情况:

1) 设置了absolute的元素如果存在有祖先元素设置了position属性为relative或者absolute,则这时元素的定位对象为此已设置position属性的祖先元素。

2) 如果并没有设置了position属性的祖先元素,则此时相对于body进行定位。

  1. position: fixed

可以简单说fixed是特殊版的absolute,fixed元素总是相对于浏览器窗体定位的。

  1. inherit

继承父元素的position属性,但需要注意的是IE8以及往前的版本都不支持inherit属性。

  1. sticky

在屏幕范围(viewport)时该元素的位置并不受到定位影响(设置是top、left等属性无效),当该元素的位置将要移出偏移范围时,定位又会变成fixed,根据设置的left、top等属性成固定位置的效果。


CSS其他技巧和知识

引用CSS的四种方式

  1. 内联style属性
  2. style标签
  3. 引用外部css文件 link标签
  4. @import url(./style.css);

清除float导致浮动的方法

  • 在float元素的父级元素上加上clearfix的class,示例见第一部分左右布局,

元素的高度是由什么决定的?

  • 元素的高度,由其内部文档流元素的高度总和决定
  • 文档流: 文档内元素的流动方向
  • 尽量不写高度宽度,用padding和line-height解决,否则可能造成bug
  • 字体较小的时候,可用line-height控制内联元素的高度

中文会自动换行而英文不会

word-break: break-all;  使得一串英文会被打断 分开
word-break: break-word;  使得不会打断 分开

用CSS画三角形的方法

.triangle{
    border: 10px solid transparent;
    width: 0px;
    border-left-color: #E6686A;
    border-top-width: 0px;
}

伪元素::before和::after

相当于div

加上这两行的代码才会显示内容
content: "";
display: block;
(如果是position:absolute就不用加,因为绝对定位后元素会默认display:block;)

让导航栏在同一行里均匀分布

给ul加css

ul{
  display:flex;  
  justyfy-content:space-between;
}

去掉li的float:left
去掉ul的clearfix

icon图标素材资源的网站

其他CSS相关的补充

  1. 用到display:inline-block 一般要再加vertical-align:top
  2. 背景图铺满整个背景 background-size:cover
  3. box-sizing: border-box; 告诉浏览器去理解你设置的边框和内边距的值是包含在width内的
  4. linear-gradient 渐变色
  5. 尽量不写高度宽度 用padding和line-height解决

相关文章

  • CSS的一些技巧和知识

    title: CSS的一些技巧和知识date: 2018-09-14 16:58:07tags: [CSS]cat...

  • CSS相关汇总

    CSS命名规范 CSS基础知识 CSS优化技巧 CSS的继承关系 CSS的选择器关系介绍

  • 常用的一些 CSS 技巧三

    你可以看看其他常用的 CSS 技巧: 常用的一些 CSS 技巧(一)[https://www.jianshu.co...

  • CSS布局技巧

    最近学习了CSS的一些知识,下面总结一下我学到的CSS布局技巧 1.左右布局 (1). 浮动左右布局也叫横向布局,...

  • CSS学习笔记四——水平垂直居中/文字图片对齐/多列布局/圣杯布

    css布局考察的知识点比较综合,基本就是使用上了所有css的基础技巧,以下是一些比较常见的场景总结。 水平居中 方...

  • 收集前端学习资料

    前端的一些学习资源 html和css代码规范 前端知识体系 前端网址大全 学习CSS布局 通用 CSS 笔记、建议...

  • web前端入门到实战:css,less实现星空动画

    效果动图如下: 知识点预览 这篇文章的less技巧 + css技巧知识点包括: less如何写循环 less里如何...

  • CSS一些小技巧

    搭建网页过程中,掌握一些CSS的小技巧,能够快速提高开发的效率,花了些许时间,学习整理了一些CSS布局技巧。 1....

  • 使用函数封装组件-Tab组件

    Tab组件的html和css技巧 html技巧-分成菜单和面板两个部分1.png css技巧-负margin产生缺...

  • css布局

    最近在学习css相关的知识,本文主要总结一些css布局相关的知识。 一、左右布局和左中右布局 左右布局和左中右布局...

网友评论

      本文标题:CSS的一些技巧和知识

      本文链接:https://www.haomeiwen.com/subject/hontrqtx.html