文章目录
上一期我们学习了CSS基础,那么及接下来,我将给大家带来CSS进阶知识,话不多说,我们这就开始~
快速写代码工具,实际开发用处较大,初学不用太在意,有基础了在用
编译器中通过简写语法,快速生成代码
如:当你输入div后按下Tab,编译器就会输出
<div></div>

后代选择器
选择器之间用空格隔开
作用: 由嵌套关系,在根据选择器1所找到的标签的后代中,找到满足选择器2的标签,设置样式
注意点:
后代是在选择器1对应标签内的所有标签,无论是孙子还是重孙
p .color{
color:red;
}
子代选择器
选择器之间用>隔开
作用: 由嵌套关系,在根据选择器1找到的子代中,找到满足选择器2的标签,设置样式
注意点:
子代只包括儿子!!!
p>.color{
color:red;
}
选择器之间用,隔开
作用: 找到选择器1选中的标签和选择器2选中的标签,均设置样式
注意点:
div,
p .color
p{
font-size : 16px;
}
选择器与选择器之间紧挨着
作用: 选中页面中同时满足所有选择器的标签,设置样式
选择器语法:
p.box{
font-style:italic;
}
注意点:
交集选择器中如果有标签选择器,标签选择器必须写在最前面
作用: 当鼠标放在元素上时,显示hover伪类设置的样式
语法: 选择器:hover{css}
p:hover{
color:red;
background-color:#f5f5f5;
}
属性名: background-color(可以用emmet语法,输入bgc+Tab)
属性值:
颜色取值:关键字、rgb表示法、rgba表示法、十六进制…
rgb(0,0,0)rgba(0,0,0,0)#f5f5f5注意点:
一般在布局中会习惯先给盒子设置背景颜色,便于操作调试
属性名: background-image(可以用emmet语法,输入bgi+Tab)
语法:
background-image: url("图片路径")
注意点:
属性名: background-repeat(可以用emmet语法,输入bgr+Tab)
属性值:
| 取值 | 效果 |
|---|---|
| repeat | (默认值)水平垂直方向都平铺 |
| no-repeat | 不平铺 |
| repeat-x | 水平平铺 |
| repeat-y | 垂直平铺 |
默认值效果:

属性名: background-position(可以用emmet语法,输入bgp+Tab)
属性值:
语法格式——
background-positon: 水平方向位置 垂直方向位置
(最后两项值用空格隔开)
属性值写法(两种):
| . | 左/上 | 中 | 右/下 |
|---|---|---|---|
| 水平方向 | left | center | right |
| 垂直方向 | top | center | bottom |
一共可以表示九个位置
background-position:center center;

2. 数字+px(坐标格式)
原点0.0在左上角,x轴方向水平向右,y轴方向是竖直向下!
想要把图片放到哪,就把对应想要的位置的左上角坐标填上去就行
注意点:
上述两种取值可以混用,注意不可颠倒
与上期所提的font属性一样,背景属性background
各属性值之间用空格隔开
书写顺序: (推荐,各属性值的顺序是可以调换的)
background: color image repeat position
background: red url("图片路径") no-repeat 0 0;
省略:
与font只能省略前俩个style和weight不同,background可以按照需求省略,如只有颜色需求:
background: blue;
特殊情况:在PC端,若盒子大小与背景图片大小一样,此时可以直接写background:url();
注意点:
在background连写中,属性名position的水平值和垂直值,只有均用方位名词时,可以调换位置
但建议,直接用默认值进行开发,以免引起不必要的麻烦
小tip:
当用div标签 + 背景图片时,需要设置div的宽高,因为背景图片是不可以撑开div的
显示特点:
代表标签:
div 、p 、h系列、ul、li、form、dt…
显示特点:
代表标签:
a、span、strong、ins、em、del…
显示特点:
代表标签:
input、textarea、button、select…
特殊情况 img标签有行内块特点,但在Chrome调试工具中显示结果是inline(行内)
语法:
| 属性 | 效果 |
|---|---|
| display:block; | 转换为块级 |
| display:inline-block | 转换为行内块 |
| display:inline | 转换为行内 |
tip1:
p与`h相互不能嵌套p标签不能嵌套div、pa标签不能嵌套a标签tip2:
居中方法总结

特性:
子元素有默认继承父元素的样式特点
可继承属性:
文字控制属性都可以继承
如:color、font类型、text类型、lin-height
…
注意点:
可以通过调试工具判断样式是否可以继承
应用小tip:
ul设置list-style:none属性,去除列表默认的小圆点body标签设置统一的font-size,从而统一不同浏览器默认文字大小继承失败情况:
只需要注意一点,自己有的就不继承
就像a标签本身就有默认字体颜色,就不会继承父标签给的颜色
h系列标签的font-size也会继承失败,因为h系列的标题标签有自己本有的字号大小,就不会继承父标签给的字号
原理就是层叠性的存在,父标签的继承是生效的,但你可以认为h标签有隐藏的属性设定----font-size,这样就有了样式冲突的情况,写在下面的生效,也就表现为继承失败
其实之前也有说过,样式冲突时,写在后面的生效,起到层层覆盖的效果
当设置样式不同是,表现为叠加的形式
有时候一个标签会有多个选择器为其设置样式,但不同的选择器之间若样式冲突,就不一定表现层叠,而是有优先生效的顺序。
公式:
继承 < 通配符选择器 < 标签选择器 < 类选择器 < id选择器 < 行内样式 < !important
前面几个大家都很熟悉,主要讲讲!important.
font-size:16px !important;
权重叠加:
复合选择器里有多个选择器,它们之间的比较,就得看各自权重,理解来看就是让手下出来打一打,看谁厉害,注意是将对将,兵对兵,下面会有说明
权重比较:(行内样式的个数,ID选择器个数,类选择器个数,标签选择器个数)
从左到右依次比较,各自项只与对应项比较,第一项一样大就比第二项,以此类推,当出现不等,权重大的优先级高
这里牛牛推荐一个功能强大的刷题软件,牛客网。里面有各大厂的面试题,还有模拟面试,让你身临其境感受面试,不仅如此,还要很多大佬的面试经验,看完硕果累累。甚至可以在里面投递简历,🍓🍓感兴趣的点此进入牛客网
下期预告:🌟🌟CSS盒子模型+CSS浮动
各位看官觉得还不错可以点赞关注一下吗,我是前端小刘不怕牛牛,期待与您共同进步🤗🤗🤗
我在MiniTest::Spec和Capybara中使用以下规范:find_field('Email').must_have_css('[autofocus]')检查名为“电子邮件”的字段是否具有autofocus属性。doc说如下:has_css?(path,options={})ChecksifagivenCSSselectorisonthepageorcurrentnode.据我了解,字段“Email”是一个节点,因此调用must_have_css绝对有效!我做错了什么? 最佳答案 通过JonasNicklas得到了答案:No
我有一个div,它根据表单是否正确提交而改变。我想知道是否可以检查类的特定元素?开始元素看起来像这样。如果输入不正确,添加错误类。 最佳答案 试试这个:browser.div(:id=>"myerrortest").class_name更多信息:http://watir.github.com/watir-webdriver/doc/Watir/HTMLElement.html#class_name-instance_method另一种选择是只查看具有您期望的类的div是否存在browser.div((:id=>"myerrortes
我的问题很简单:我是否必须在使用RubyonRails的类上require'csv'?如果我打开一个railsconsole并尝试使用CSVgem它可以工作,但我必须在文件中这样做吗? 最佳答案 CSVlibrary是ruby标准库的一部分;它不是gem(即第三方库)。与所有标准库(与核心库不同)一样,csv不会由ruby解释器自动加载。所以是的,在您的应用程序中某处您确实需要要求它:irb(main):001:0>CSVNameError:uninitializedconstantCSVfrom(irb):1from/Us
我开始了一个新的Rails3.2.5项目,Assets管道不再工作了。CSS和Javascript文件不再编译。这是尝试生成Assets时日志的输出:StartedGET"/assets/application.css?body=1"for127.0.0.1at2012-06-1623:59:11-0700Servedasset/application.css-200OK(0ms)[2012-06-1623:59:11]ERRORNoMethodError:undefinedmethod`each'fornil:NilClass/Users/greg/.rbenv/versions/1
rails新手。只是想了解\assests目录中的这两个文件。例如,application.js文件有如下行://=requirejquery//=requirejquery_ujs//=require_tree.我理解require_tree。只是将所有JS文件添加到当前目录中。根据上下文,我可以看出requirejquery添加了jQuery库。但是它从哪里得到这些jQuery库呢?我没有在我的Assets文件夹中看到任何jquery.js文件——或者直接在我的整个应用程序中没有看到任何jquery.js文件?同样,我正在按照一些说明安装TwitterBootstrap(http:
我正在尝试消除使用Bootstrap3的Rails4元素中的glyphicon错误。我没有使用任何Bootstrapgem将其添加到Assets管道中。我手动将bootstrap.css和bootstrap.js添加到各自的app/assets目录下,分别添加到application.css和application.js什么的我现在在网络浏览器的控制台中看到以下内容:GEThttp://localhost:3000/fonts/glyphicons-halflings-regular.woff404(NotFound)localhost/:1GEThttp://localhost:30
我有一个使用twitterbootstrap和sass的Rails元素。scss文件结构化到文件夹中,所以我有更好的概述。现在我想为包含我的颜色等的全局变量定义一个文件,并将这些值传递给其他文件,这样我就有更少的冗余代码。虽然所有代码都已正确导入和应用,变量不起作用。这是当前的设置:样式表/application.css.scss/**=require_self*=require_tree*//*stylesheets/||–base/||–_reset.scss#Reset/normalize||–_typography.scss#Typographyrules||–componen
Ruby是完全面向对象的语言。在ruby中,一切都是对象,因此属于某个类。例如5属于Objectclass1.9.3p194:001>5.class=>Fixnum1.9.3p194:002>5.class.superclass=>Integer1.9.3p194:003>5.class.superclass.superclass=>Numeric1.9.3p194:005>5.class.superclass.superclass.superclass=>Object1.9.3p194:006>5.class.superclass.superclass.superclass.su
有没有一种方法可以在jekyll站点中包含自定义css标签,同时将markdown用于入口文件?例如,当我想突出显示某个段落时? 最佳答案 Markdown和YAMLFrontMatter都内置了这个。但你可以自己制作。比如说,您有foo.css想要包含在某些帖子中。在_posts/2013-02-03-higligting-foo.markdown中:---css:footitle:"DrupalImagecachesecurityvulnarabilitywithDDOSattackexplained"tags:[drupal,
我在一台Windows764位机器上使用Sass和Ruby(最新版本),我正在我的家庭服务器上处理一个共享文件夹。(但是,我不得不承认问题本身也出现在服务器上,因为我试图安装Ruby并直接-watch服务器上的文件)。问题如下:如果我第一次保存,检测到变化,我的style.css被直接覆盖。之后,我总是需要保存多达7次才能覆盖style.css。每次都会检测到更改,但不会编译任何内容。这是一个屏幕:>>>Sassiswatchingforchanges.PressCtrl-Ctostop.overwritestyle.css>>>Changedetectedto:E:/Websites