深入理解css 笔记(完)
一个网站,从看起来还可以,到看起来非常棒,差别在于细节。在实现了页面里 某个组件的布局并写完样式之后,不要急着继续,有意识地训练自己,以挑剔的眼光审视刚刚完成的代码。如果增加或者减少一点内边距是不是看起来更好。调一下颜色是不是效果更好,如果在开发设计师详细的视觉稿,实现效果有没有做到完美还原。
接下来我们讲细节。按钮使用了背景渐变和投影的话,就会有种立体感。还有一种设计大家使用扁平化设计。扁平化设计讲究色彩明快统一,外观简洁明了,意味着少用渐变,阴影和圆角。我们还是讲点基础东西吧
基础选择器由 4 种。tagname,类型或者标签选择器。它的优先级是 0,0,1 例如 p h1 strong。.class 类选择器。该选择器匹配 class 属性中有指定类名的元素。它的优先级是 0,1,0.#id id 选择器。该选择器匹配拥有指定 id 属性的元素。它的优先级是 1,0,0.*通用选择器。该选择器匹配所有元素。它的优先级是 0,0,0.组合器将多个基础选择器连接起来组成一个复杂选择器。例如.nav-menu li 选择器种,两个基础选择器之间的空格被称作后代组合器。它表示目标元素 li 是一个拥有 nav-menu 类的元素的后代。不过还存在其他几个组合器,它们分别代表了元素的某种特定关系。
子组合器> 匹配的目标元素是其他元素是其他元素的直系后代。例如.parent>.child。相邻兄弟组合器+匹配的目标元素紧跟在去他元素的后面。例如:p + h2。通用兄弟选择器~匹配所有跟随在指定元素之后的兄弟元素。注意,它不会选中目标之前的目标元素。例如 li.actvie ~li。多个基础选择器可以连起来(不使用空格或者其他组合器)组成一个复合选择器。复合选择器选中的元素将匹配其全部基础选择器。例如.dropdown.is-active 能够选中div class="dropdown is-active"/div,但是无法选中div class="dropdown"/div
伪类选择器用于选中处于某个特定状态的元素。伪类选择器始终以一个冒号开始。优先级等于一个类选择器:first-child匹配的元素是其父元素的第一个子元素。:last-child匹配的元素是其父元素的最后一个子元素。:only-child匹配的元素是其父元素的唯一一个子元素。没有兄弟元素。:nth-child(an+b)匹配的元素在兄弟元素中间有特定的位置。公式an+b可以从0带入。:ntn-last-child(an+b)类似nth-child(),但不是从一个元素往后数,而是从最后一个元素从前数。:first-of-type类似于:first-child,但不是根据在全部子元素中的位置查找元素,而是根据拥有相同标签名的子元素中的数字顺序查找第一个元素。:last-of-type匹配美中类型的最后一个子元素。:only-of-type该选择器匹配的元素是满足该类型的唯一一个子元素。:nth-of-type(an+b)根据元素在特定类型下的数字顺序以及特定公式选择元素。:nth-last-of-type(an+b)根据元素类型以及特定公式选择元素,从其中最后一个元素往前算,类似:nth-last-chid。:not(selector)匹配的元素不匹配括号内的选择器。括号内的选择器必须是基础选择器。它只能指定元素本身,无法用于排除祖先元素,同时不允许包含另一个排除选择器。:empty匹配的元素必须没有子元素。如果元素包含空格就无法由该选择器匹配,因为空格在dom中属于文本节点。:focus匹配鼠标点击,触摸屏幕或者按tab键导航而获得焦点的元素。:hover匹配鼠标指针正悬停在其上方的元素。:root匹配文档根元素。:disabled匹配已禁用的元素。:enabled匹配已启用的元素,即那些能够被激活或者接受焦点的元素。:checked匹配已经针对选定的复选框,单选按钮或者选择框选项。:invalid根据输入类型中定义,匹配有非法输入值的元素。例如input type="email",值不是一个合法的邮箱地址时。:valid匹配有合法值的元素。:required匹配设置了required属性的元素。:optional匹配没有设置required属性的元素。
伪元素类似于伪类,但是它不匹配特定状态的元素,俄式匹配在文档中没有直接对应html元素的特定部分。这些选择器以双冒号开头,不多数浏览器也支持单冒号的语法以便向后兼容。伪元素选择器的优先级与类型选择器(0,0,1)相等。:before创建一个伪元素,使其成为匹配元素的第一个子元素。该元素默认是行内元素,可用于插入文字,图片或其他形状。必须指定content属性才能让元素出现.:after创建一个伪元素,使其成为匹配元素的最后一个子元素。:first-letter用于匹配元素的第一个文本字符的样式。:first-line用于指定元素的第一行文本的样式。:selection用于指定用户使用鼠标高亮选择的任意文本的样式。
属性选择器用于根据html属性匹配元素。其优先级与一个类选择器(0,1,0)相等。[attr]匹配的元素拥有指定属性attr,无论属性值是什么,例如:input[disabled].[attr='value']匹配的元素拥有指定属性attr,且属性值等于指定的字符串值,例如input[type='radio'].[attr='value']开头属性选择器。该选择器匹配的元素拥有指定属性attr,且属性值的开头是指定的字符串值,例如:a[href='https'].[attr='value']结尾属性选择器。该选择器匹配的元素拥有指定属性attr,且属性值的结尾是指定的字符串值,例如:a[href=′value′]结尾属性选择器。该选择器匹配的元素拥有指定属性attr,且属性值的结尾是指定的字符串值,例如:a[href='.pdf']。[attr*='value']包含属性选择器。该选择器匹配的元素拥有指定属性attr,且属性包含指定的字符串值,例如:[class*='sprite-'].[attr~='value']空格分隔的列表属性选择器。该选择器匹配的元素拥有指定属性attr,且属性值是一个分隔的值列表。列表中的某个值等于指定的字符串。如a[rel='author'].上述属性选择器都是区分大小写的。(完)
深入理解css 笔记(完)的更多相关文章
- 理解CSS
写在前面的话:对于web开发,html完成网页的structure,css完成网页的presentation,js完成网页的behavior,今天就来说一说css,通过理解一些css的基础概念,能够更 ...
- 深入理解CSS中的层叠上下文和层叠顺序(转)
by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpress/?p=5115 零.世间的道 ...
- 如何理解CSS中的浮动 :其实他就像乘坐扶梯一样
只要你用过自动扶梯,你就能很快的理解CSS中的浮动(Float). 你肯定遇到过这样的情况: 做好了,你想用CSS浮动来调整元素间的位置关系. 在写完代码之后,你发现浮动元素没出现在你设想 ...
- 深入理解css BFC 模型
如果要深入理解css布局的各种原理,要在重构页面做得心应手的话,那么你就必须先理解这玩意 "BFC" , BlockFormatting Context(块级格式化上下文): 这里 ...
- 深入理解CSS溢出overflow & overflow:hidden真的失效了吗[转载]
深入理解CSS溢出overflow http://www.cnblogs.com/xiaohuochai/p/5289653.html overflow:hidden真的失效了吗 http://www ...
- 深入理解css中的margin属性
深入理解css中的margin属性 之前我一直认为margin属性是一个非常简单的属性,但是最近做项目时遇到了一些问题,才发现margin属性还是有一些“坑”的,下面我会介绍margin的基本知识以及 ...
- 深入理解css中position属性及z-index属性
深入理解css中position属性及z-index属性 在网页设计中,position属性的使用是非常重要的.有时如果不能认识清楚这个属性,将会给我们带来很多意想不到的困难. position属性共 ...
- 深入理解CSS中的层叠上下文和层叠顺序
零.世间的道理都是想通的 在这个世界上,凡事都有个先后顺序,凡物都有个论资排辈.比方说食堂排队打饭,对吧,讲求先到先得,总不可能一拥而上.再比如说话语权,老婆的话永远是对的,领导的话永远是对的. 在C ...
- 理解CSS居中
我想很多在前端学习或者开发过程中,肯定会遇到如何让你的元素居中的问题,网上google肯定会有很多的解决方法.今天我就个人的项目与学习经验谈谈个人理解css如何让元素居中. 要理解css的居中,首先必 ...
- <转>HTML+CSS总结/深入理解CSS盒子模型
原文地址:http://www.chinaz.com/design/2010/1229/151993.shtml 前言:前阵子在做一个项目时,在页面布局方面遇到了一点小问题,于是上stackoverf ...
随机推荐
- IPC,进程间通信
信号机制 也叫软中断,软件层次上对中断的模拟 kill -9 加进程号可以终止进程 linux下执行kill -l可以看到 这里面居然没有32 33 直接从31到34 所以一共是62个信号 1) SI ...
- 查看当前执行的sql
SELECT TOP 100 t.hostname, t.loginame, percent_complete, [session_id] , der.[request_id] , [start_ti ...
- Unity SRP Batcher的工作原理
https://blog.csdn.net/zakerhero/article/details/107714801
- Day 22 22.1.2:增量式爬虫 - 场景2的实现
场景2的实现: 数据指纹 使用详情页的url充当数据指纹即可. 创建爬虫爬虫文件: cd project_name(进入项目目录) scrapy genspider 爬虫文件的名称(自定义一个名字即可 ...
- 【C学习笔记】day2-3 求10 个整数中最大值
#include <stdio.h>#define n 10 int main() { int max=0; int a[n] = {12,15,16,546,165,654,612,23 ...
- 正在运行转换: System.Runtime.Remoting.RemotingException: 无法加载类型“EnvDTE._DTE
在编写T4,引用envdte时,遇到如下错误,解决方案:右击引用中的envdte,属性中将"嵌入互操作类型"为false,重新编译库即可. 错误信息如下: 严重性 代码 ...
- SpringBoot接口防刷
一.自定义注解 import java.lang.annotation.Retention; import java.lang.annotation.Target; import static jav ...
- (jmeter笔记)模拟用户各种场景压测
插件:standard set 1.jp@gc - Ultimate Thread Group(波浪式压测,最终线程组) Start Threads Count :设置启用并发数 Initial De ...
- 在 MAC 上 进行 iOS 的 Airtest 自动化测试(未完成)
1. 用USB连接 iPhone 和 mac . 从 连接 https://github.com/AirtestProject/IOS-Tagent 下载iOS-Targent工程文件, 在左上角选择 ...
- Docker学习——Docker 三剑客(七)
Docker Compose 简介 Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责arg>...] [options] [COMMAND] ...