WEB前端 CSS(非布局)

目录

  • WEB前端 CSS
    • CSS引入方式
    • CSS结构
    • CSS选择器
      • 直接选择器
      • 组合选择器
      • 分组选择器 也叫并集选择器
      • 属性选择器
      • 伪类选择器
      • 伪元素选择器
    • CSS选择器是一个查找的过程,高效的查找影响页面加载的效率
    • CSS选择器的优先级
    • CSS声明
      • CSS非布局声明
      • CSS布局声明
    • 除了css 对样式有影响,标签元素的其它属性也会有一些影响。如的type类型

WEB前端 CSS

CSS被用于同时控制多重页面的样式和布局样式很多;关键在于布局的耗时和难点通过CSS可以将html中的格式化都剥离出来。

为什么说层叠呢?
简单说就是:一个元素标签的样式css的来源,是可以有很多来源的。把每个来源点抽象看为一个层,每个来源层根据css的标准,是有不同的优先级的。优先级低的在底层,优先级高的在高层。这样层次堆叠就有了一个从上而下的堆叠模型,或者想象成一个装修材料层板堆叠在那里。每一层都可以给元素设置任何css属性,每一层之间可以有相同的属性。只是,相同的属性会根据层次的优先级进行覆盖。可以再次想象从上帝视角,垂直向下看,上层有的会遮挡下层有的,上层没有的就会看到下层有的。这就是将一个立体的看成一平面视角。这就是层叠的含义了。

至于优先级,内联高于选择器(多个选择器,根据权重排列优先,相同有后覆盖先),选择器高于继承。
可以说,css这种设计非常优秀的。很多技术都有类似的设计解决多来源的冲突
了解层叠和css属性来源,是调试样式的关键。
优点:

  1. 大大提升网页开发的效率
  2. 提高网站被搜索引擎收录,html文件小了。
  3. 内容和表现分离
  4. 网站表现统一,容易修改;这个很重要,用户体验最重要。

博文图片挂了临时解决办法
o_%E6%9F%A5%E7%9C%8B%E6%8C%82%E5%9B%BE%E4%B8%B4%E6%97%B6%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95.png

CSS引入方式

  1. 内联样式:在HTML元素标签头中添加style属性。
  2. 内部样式表:在HTML的head标签使用style标签,包含CSS内容
  3. 外部引用:使用外部CSS文件,通常在head中使用link;css文件最好已.css结尾;外部还有一种导入式;

三种引入方式,内联是优先大于后两者的。
而后两者注意其在html代码中引入的顺序;这个顺序会影响优先级。相同选择器权重后引入的优先级高。

一般父级标签可以影响到子标签,但是有些则不能,如a链接标签.
在引入方式这里还要提到,引入方式除了内联,其它都是选择器。
可以总结一个:标签css样式的抽象来源方式有:继承,选择器,内联。只是选择器有两种引入方式。

CSS结构

  1. CSS结构都是:选择器和声明;
  2. 选择器:selector 选择出dom节点。匹配选择器的节点,将获得该选择器的声明(Css样式)作为一层。至于这一层是优先级,另行判定权重。选择器原理在很多框架中都得到了应用,如jQuery。选择器原理可以参考这篇博客
  3. 声明:声明就是属性和值是k:v对,多个声明间使用分号间隔.
  4. css的注释方式:
/*这是注释*/
/*
html是<!-- -->
js是//
css是/**/
*/

CSS选择器

站在元素标签的角度,它被选择器Selector选中后,元素去选择排序涉及到自己的选择器权重顺序,并重叠他们,取出想要的。权重高的没有的属性,就使用选择权重低的的样式。这就是重叠。
其实选择器的分类,可以站在另一个角度来看待:

  • 一类:直接选择器,通过元素自身的特点的选择器;标签选择器,类,id,属性。
  • 二类:间接选择器,很多叫组合选择器;通过自己所处的环境和位置来;由直接选择器构成,直接选择器之间存在包含关系或者说父子关系,最后选择上的是被包含的元素;利用了父元素的选择来间接通过它们的关系来选择上元素。如:后代选择器,儿子选择器,毗邻选择器,弟弟选择器。
  • 三类:分组选择器,很多叫群组选择器。就是多个选择器,无论直接还是间接,它们都是一样的声明样式;为了节约代码,将他们用逗号间隔。其实质就是放到把选择器放到一起成为一个组,他们之间没有任何关联关系,只是大家都是一样的声明样式,放在一堆而已。
  • 四类:交集选择器,因为一个元素的多个自身特点组合在一起来选择元素。但是,第一个选择器必须是标签选择器第二个必须是类选择器或者id选择器。如元素有多个类,通过一个类可能选择不到,就通过多个类一起选择。也可以想成,一个选择器选择的元素和另一个选择器选择的元素之间的交集里面的元素。交集选择器用的还是比较多的。它的构成就是选择器之间没有空格。交集还可以是标签和属性选择器交集。
  • 五类:伪类和伪元素,不存在的。伪类是元素事件发生时被选择上所呈现的样式。为元素是元素的前后虚拟出元素。

小结:选择器说白了,就是找可能定位元素的各种维度去实现查找。带到耗子的就是好猫。当你要给一个或者一类元素创建选择器时,就是考虑怎么查找到他们更准确,就是选择器类型的选型了。还有种选择器是用于动态的,就是配合js改变元素,从而改变元素匹配的选择器,从而改变页面的布局样式。这就是js操纵页面动态的手段之一(也要考虑选择器优先级)。

直接选择器

1. 标签选择器

选择器是标签名:p {}

2. 类选择器

选择器是.类名: .red {}
其实类选择器可以看作是用于标签继承的,标签可以多继承。
类用来归类一些列样式。可以将实现了不同样式的类应用到元素中。最后多个类进行层叠,得到想要的效果。所以用类的层叠使用是很科学和灵活的。

  • 要用“公共类”的思想,将多个标签相同的样式,都抽象到一个类中
  • 不要试图使用一个类就将标签的样式都写到这个类中。通过抽象公共部分到一个类中,然后标签使用多个类。这样就解除了一定的耦合,即如果元素的样式都在一个类中,那么类和这个元素之间就是高度耦合的。每个类尽量小,减少了耦合度,这样就变得非常灵活,把代码写活了。

3. ID选择器

选择器是#id值: #p2 {}

4. 通用选择器

* { }
主要用于reset css 重置样式;如清楚所有盒子的padding和margin;设置百分比高度继承有效果参考

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {margin: 0;padding: 0;border: 0;font-size: 100%;font: inherit;vertical-align: baseline;
}
html {box-sizing: border-box;
}*,
*::before,
*::after {box-sizing: inherit;
}

组合选择器

是对前三种选择器进行扩展组合。而inline style是元素标签内的,严格不是选择器,但是人们便于理解记忆,将其说成内联选择器。

标签选择器后 跟 标签

    1. 后代,无论直属还是间接: div p {}
    1. 直属,直接后代 : div>p {}
    1. 毗邻, 后代中最近的一个: div+p {}
    1. 弟弟,找到和自己同级的标签: div~p {}
      如: .polaris span img {} 通过多个选择器好到具体的标签。

分组选择器 也叫并集选择器

如: div,span,img {} 注意使用逗号间隔的,这就是群主选择器,其实群主选择器就是将定义相同的放在一起,省代码

属性选择器

  1. 根据属性查找
  2. 根据属性和值查找:=,^=,$=,*=,~=

伪类选择器

是标签加上标签的type类型。如: a:active {} 。

  • 伪类选择器主要用在a标签
  • 对于a标签:有“love hate" link visited hover active
  • 表单的input标签input输入框获取焦点时的样式:input:focus {}

伪元素选择器

所谓伪元素选择器,就是针对一个虚拟的元素,没有具体的标签,就是一个标签的相对位置构建一个默认inline的盒子。所以伪元素选择器,长得像这样:p:after {} 这样。

  • 主要有三类:first-letter、before、after
  • 其实指定元素的伪元素,这个伪元素是一个相当于是个元素,就是一个盒子,这个盒子是在指定元素盒子的content内,即是指定元素的子元素。before在前面after在后面。
  • before和after伪元素要起作用,其选择器必须有content属性,即使content时候一个空字符串;没有content是不会在页面有任何效果的;
  • after多用于一个盒子内,利用它的位置性,即总是在最后,可以给他指定一个clear:both属性,进行清除浮动。
  • 经过试验:发现first-letter只能用在元素类型是block和inline-block可用。
  • 对于after和before在盒子前后添加一个盒子做分隔线还是不错的。

CSS选择器是一个查找的过程,高效的查找影响页面加载的效率

选择器查找原理

CSS选择器的优先级

选择器优先原理参考
一般而言,选择器越特殊,选择器指向越准确,优先级越高(所以我们要定义一个选择器时,要想优先级高不被其它覆盖,尽量准确)基于基本选择器的权重进行计算,参考权重值:

65c17dd5gy1g2eww855qwj20fr04xdgq.jpg

组合的选择器,就根据这个进行计算得出权重值,这里也给个形象的枚举出所有组合可能之间的权重关系:
65c17dd5gy1g2ewxnp37nj20go0l9q4t.jpg

还有一些法则:
65c17dd5gy1g2ewyf9u29j20hj0453yv.jpg

还有:1. 伪类选择器、属性选择器、类选择器 权重一样
2. 标签选择器、伪元素标签选择器 权重一样

!important 是作用域属性,在属性的值后面加上!important,那么这个属性所影响到的元素都已这个!important所影响的值。

特别注意:权重比较是按照同类比较,不会去计算和的大小。也就是说同一权重计数是不会进位的。

CSS声明

就是指定k-v对,也可以说是元素的属性,影响元素在浏览器中的表现。
可以将属性对样式产生的影响不同进行分类:
大分类两种:

CSS非布局声明

就是和盒子还有布局无关;如字体,颜色等.
text-decoration 文字上通过线装饰。
background-image:url(xx.png)

CSS布局声明

见《WEB前端 布局》
关于布局:盒子模型和BFC规则,

除了css 对样式有影响,标签元素的其它属性也会有一些影响。如

  • 的type类型

转载于:https://www.cnblogs.com/ZJiQi/p/9264304.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266747.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 从库 速度太慢_mysql查询速度慢的原因[整理版]

在以前的博客中陆续记录了有关查询效率方面的文章。今天在整理一下&#xff0c;写上自己的一些心得记录如下&#xff1a;常见查询慢的原因常见的话会有如下几种&#xff1a;1、没有索引或没有用到索引。PS&#xff1a;索引用来快速地寻找那些具有特定值的记录&#xff0c;所有M…

智能家居(工厂模式)

摘自&#xff1a;智能家居 作者&#xff1a;LEO-max 发布时间&#xff1a; 2021-03-05 00:38:07 网址&#xff1a;https://blog.csdn.net/zouchengzhi1021/article/details/114375529?spm1001.2014.3001.5502 目录 主流程设计框架及某一功能框架编写InputCommand.h框架contrlD…

计算机应用基础0006 19秋在线作业2,川大《计算机应用基础0006》13春在线作业2

计算机,建筑工程川大《计算机应用基础0006》13春在线作业214春13秋都有 试卷总分&#xff1a;100 测试时间&#xff1a;--单选题、单选题(共 50 道试题&#xff0c;共 100 分。)1. 在Windows资源管理器中&#xff0c;要把图标设置成缩略图方式&#xff0c;应在下面哪组菜单中设…

【c++基础】vector中按照Point类型某一个变量进行排序

code // sort(a.begin(), a.end(), cmpy);//subfunction bool cmpy(cv::Point const& a, cv::Point const& b) {return a.y < b.y; } 完转载于:https://www.cnblogs.com/happyamyhope/p/9269457.html

二叉树的三叉链表存储和基本操作

三叉链表存储表示 改进于二叉链表&#xff0c;增加指向父节点的指针&#xff0c;能更好地实现结点间的访问。 存储结构 /* 二叉树的三叉链表存储表示 */typedef struct BiTPNode{TElemType data;struct BiTPNode *parent,*lchild,*rchild; /* 双亲、左右孩子指针 */}BiTPNode,*…

麟龙指标通达信指标公式源码_通达信指标公式源码单阳不破主图指标公式

做价值的传播者&#xff0c;一路同行&#xff0c;一起成长问题&#xff1a;怎样才能每天都收到这类文章&#xff01;答案&#xff1a;只需点击上方《通达信公式指标》{通达信单阳不破}MA30: MA(C,30 ),COLORGREEN;MA30_: IF(MA30>REF(MA30,1),MA30,DRAWNULL),COLORMAGENTA;阳…

计算机基础中的分层教学,分层教学法在计算机基础课程中的应用研究

摘要&#xff1a;随着信息科技的发展&#xff0c;计算机技术发展成为国人关注的重点。职业教育作为中国教育的关注重点之一&#xff0c;其在近些年的发展中&#xff0c;由于不断扩大招生地源&#xff0c;学生的学习能力和学习进度都相差很大&#xff0c;再加上传统的教学方法&a…

树莓派外设开发之玩传感器

参考&#xff1a;用树莓派玩传感器 作者&#xff1a;LEO-max 发布时间&#xff1a; 2021-02-24 16:30:46 网址&#xff1a;https://blog.csdn.net/zouchengzhi1021/article/details/114026649?spm1001.2014.3001.5502 目录接线红外避障传感器声音传感器火焰传感器烟雾传感器超…

xxx.jar 中没有主清单属性

xxx.jar 中没有主清单属性 springboot 中是可以通过 jar 将整个项目打包成一个fat jar 的, 这个大家都知道. <!-- 打包jar文件时&#xff0c;配置manifest文件&#xff0c;加入lib包的jar依赖 --><plugin><groupId>org.apache.maven.plugins</groupId>…

面试软件设计人员的方法,附面试题。我的面试注重实效

前段时间招聘。因为我一直在我的部门推行一些有效却被绝大多数中国公司忽视的开发理念&#xff0c;比如平级人事结构、测试驱动开发、制度化绩效、设计先行、迭发等等&#xff0c;所以招软件设计师非常困难。最终问题还算解决了吧。以下是我的面试总结。  一般来说&#xff0…

rtc校准算法_STM32实时时钟RTC日历算法

本帖最后由 shipeng1989 于 2019-5-16 08:32 编辑最近工作上需要利用STM32的自带RTC编写日历功能。其实对于公历万年历并不是很复杂&#xff0c;但是由于自带RTC断电后只能做32位二进制秒计数不能更新日期信息&#xff0c;要从根本上解决这个问题就需要编写一个算法可以根据计数…

全国计算机等级考试题库二级C操作题100套(第90套)

第90套&#xff1a; 函数fun的功能是&#xff1a;统计所有小于等于n(n>2)的素数的个数&#xff0c;素数的个数作为函数值返回。 请在程序的下划线处填入正确的内容并把下划线删除&#xff0c;使程序得出正确的结果。 注意&#xff1a;源程序存放在考生文件夹下的BLANK1.C中…

智能合约从入门到精通:完整范例

简介&#xff1a;前几篇文章我们一直在讨论Solidity语言的相关语法&#xff0c;从本文开始&#xff0c;我们将介绍智能合约开发。今天我们将介绍一个完整范例。 此章节将介绍一个完整案例来帮助开发者快速了解合约的开发规范及流程。 注意&#xff1a; 在进行案例编写前&#x…

高考英语口语测试软件,练习英语口语的app有哪些

随着国际化的发展&#xff0c;英语越来越普遍。英语中口语也是很重要的成分之一。也是跟老外交流或者英语考试的重要考点之一。我们有很多方法锻炼口语。什么方法最快捷最有效方便&#xff1f;下面我们看看几款最受欢迎的英语口语练习app。练习口语的app1、口语侠一款非常实用的…

chkconfig命令会立即生效吗_UG绘制波纹管,整体变形命令你会用吗?

最近又有小伙伴问我波纹管怎么画了&#xff0c;这个以前教过大家&#xff0c;文章名字叫饮料吸管和排水管&#xff0c;看来这个名字不够专业&#xff0c;大家找不到啊&#xff0c;今天就来重新绘制一个&#xff0c;用一个新的方法&#xff0c;大家来额外学习一下&#xff0c;了…

Windows Phone 8 开发资源汇总

1) 提前下载安装包&#xff0c;离线安装https://dev.windowsphone.com/en-us/downloadsdk 2&#xff09;在线安装地址http://www.microsoft.com/en-us/download/details.aspx?id354713) 案例代码&#xff1a;Windows Phone Samples: learn through code http://code.msdn.micr…

vue中mixin 感觉很牛逼(父子组件融合成一个新组件)

vue中提供了一种混合机制--mixins&#xff0c;用来更高效的实现组件内容的复用。最开始我一度认为这个和组件好像没啥区别。。后来发现错了。下面我们来看看mixins和普通情况下引入组件有什么区别&#xff1f; 组件在引用之后相当于在父组件内开辟了一块单独的空间&#xff0c;…

C语言入门日记

参考&#xff1a;C语言入门日记 作者&#xff1a;9art0 发布时间&#xff1a;2020-08-30 16:37:46 网址&#xff1a;https://blog.csdn.net/GatoWong/article/details/108307915?spm1001.2014.3001.5501 C语言入门日记1.1.C语言搭建及system函数1.2.C语言的基础框架解释1.3.C程…

测试电视是不是4k的软件,怎么判断4K电视真假?教你快速检测的方法!

原标题&#xff1a;怎么判断4K电视真假?教你快速检测的方法!4K电视从进入市场之后一直都受到企业的力捧&#xff0c;随着电视企业对4K电视的大力度宣传和消费环境的逐渐成熟&#xff0c;越来越多的消费者开始认可4K电视&#xff0c;并在购机时表明首选4K电视。4K电视顾名思义就…

等压线上怎么画风向_战场上骑兵应该怎么拔刀?从清人佩刀为何总是刀柄向后说起...

在以前的文章《兵器谱|挂错地方死得快&#xff01;图说骑兵马刀的佩带与悬挂》&#xff0c;有读者问&#xff1a;清代的武将大多数都是刀柄朝右边&#xff0c;挂在屁股后面&#xff0c;算不算双附耳式悬挂法的一个变种呢&#xff1f;这样到底是不是真的有助于马上拔刀&#xff…