当前位置: 首页 > Web前端 > HTML

我所知道的CSS

时间:2023-03-28 12:54:12 HTML

OriginCSS到底是什么?简单的回答就是分层装饰表可以描述网页上元素的风格和形状,比如颜色、大小、布局等等。复杂的答案是,它既是一种浏览器支持的样式配置,又是一种配置语言。回到很久以前,在互联网的早期,人们只是创造了XML的小表弟HTML,并用它来构造一个“好看”的网页。人们在页面上使用不同的元素名称来表示不同的内容,并根据浏览器内置的样式进行渲染。比如h1是大字号的粗体,code是等宽的小字,p是分段的文字等等。后来人们渐渐觉得这些内置的样式满足不了好看的追求,浏览器厂商就想,让你们这些写网页的人自己配置吧。所以HTML元素有一个style属性,通过它可以修改元素的样式:,这样的配置方式比较麻烦,比如页面上所有的按钮都必须有统一的格式,一个一个单独配置肯定是不现实的。于是样式表应运而生,简而言之就是用一个单独的文件来保存页面所有元素的样式配置。CSS的主要语法非常简单。大括号外的选择器表示被选中的元素,大括号内的具体样式配置:h1{color:red;font-size:20px;}每个样式属性之间,使用分号分隔,最后一项可以省略分号。分号的位置没有要求,如果你愿意,也可以把分号放在行首。CSS继承了XML和HTML不区分大小写的特性。当然,为了代码整洁,还是统一大小写格式比较好:elEmEnt{CoLoR:red;fonT-size:20px;background-color:green}CSS中唯一的数据类型是字符串,不像JSON,有布尔值、数字等。CSS都是字符串,但请记住它们不需要引号。CSS中的每个属性都可以接收一个或多个参数,参数之间用空格隔开,例如:padding:10px10px10px;selectorelementname,class,id刚才说??了大括号外面的是选择器,这让我想起了jQuery中的$选择器,其实和那个很像。基本规则是:的开头。表示元素的类,#开头表示元素的id,字母开头表示元素的类型名。请注意,class和id都区分大小写,这与元素类型名称不同。h1{}.my-class{}#my-id{}如果要同时为多个选择器配置相同样式的参数,那么用,来分隔,意思是“或”:.my-class,#my-id{background-color:yellow}伪类选择器也可以加一些修饰符,比如表示鼠标悬停时的样式,在后面加上:hover即可。这种单冒号修饰就叫做伪类(pseudoclass):.my-class:hover{color:red}还有一种伪元素,就是在它后面加两个冒号,叫做伪元素(pseudoelement),为例如::first-letter表示元素内容的首字母::my-class::first-letter{color:red}根据我实际测试,同时使用时,必须在a后面放两个冒号冒号,即.my-class:hover::first-letter这可行,但反之则不行。转义如果你的类名包含引号,需要用\转义,例如:c3

.super\:man\:\:class{font-size:50px;}属性选择器接下来是最不自然的选择器,它被称为属性选择器,它根据匹配属性的值来选择,例如:c1
c2
c3
[group^=g]{color:blue}表示选择所有符合其group属性的group属性“g”元素开头。选择器说了这么多,实际工作中会用到的其实就那么几个,主要是前三个。还有更复杂的组合选择器这里就不说了,也不希望这篇文章完全成为文档,但还是希望能聊一些有趣的想法。那些特别复杂的选择器的存在是有历史原因的,我的猜测是过去网络很慢,并且需要尽量减少传输的文本量,这增加了选择器的复杂性。Flexbox和Grid不得不提的是页面的布局。CSS目前比较常用的是Flexbox(弹性盒子)和Grid(网格)模型。顾名思义,Flexbox模型中的元素可以被拉伸和压缩。Grid是将页面分成若干行和列,并将元素放置在某个网格位置的网格。基于类的CSS框架首先我们要知道HTML的一个特点:每个元素可以同时设置多个类(classes),类之间用空格隔开。这个特性催生了一系列基于预制类的CSS框架,比如tailwindcss。它们预先定义了许多类并提供特定的功能。程序员在使用时不再需要自己定义类,而是直接为html元素设置多个预制类。这解决了据说是编程中最困难的问题之一——命名。例如,这里的pt-6表示“padding-top:1.5rem”,space-y-4表示“margin-top:1rem”。程序员可以通过组合这些预制的类来达到预期的效果。如果说最初的手写CSS是泥巴做的形状,那么使用基于类的框架就像是用现成的乐高积木拼装。综上所述,以上就是我从一个非前端程序员的角度来谈谈css。如有错误,请指出。个人觉得css是一个面向设计的东西,需要专业的设计能力,或者可以参考UI设计师的设计图来写。非专业人士如果想快速做出好看好用的页面,可以直接使用CSS框架。https://www.bilibili.com/video...本文参加了SegmentFault思维写作挑战赛,欢迎正在阅读的你加入。