css基础进阶

简介: css知识点一、盒模型知识border: 边框border-width:边框的宽度border-color:边框的颜色border-style:边框的线型border-top:上边框border-bottom:下边框border-lef...

css知识点

一、盒模型知识

border:

边框

  • border-width:边框的宽度
  • border-color:边框的颜色
  • border-style:边框的线型

  • border-top:上边框

  • border-bottom:下边框
  • border-left:左边框
  • border-right:右边框

padding:

代表边框内壁与内部元素之间的距离

  • padding:10px;代表上下左右都是10px

  • padding:1px 2px 3px 4px;上右下左

  • padding:1px 2px;上下/左右

  • padding:1px 2px 3px; 上/左右/下

  • padding-top:单独设置

margin:

代表边框外壁与其他元素之间的距离

  • margin:10px;代表上下左右都是10px

  • margin:1px 2px 3px 4px;上右下左

  • margin:1px 2px;上下/左右

  • margin:1px 2px 3px;上/左右/下

  • margin-top:单独设置

二、css选择器

选择器的优先级:id>class>元素

1、基本选择器

(1)元素选择器

语法:html标签名{css属性}
示例:

<span>hello css!!!</span>
<style type="text/css">
    span{color:red;font-size:100px; }
</style>

(2)id选择器 id唯一性

语法:#id的值{css属性}
示例:

            <div id="div1">hello css1!!!</div>
            <div id="div2">hello css2!!!</div>
            <style type="text/css">
                #div1{background-color: red;}
                #div2{background-color: pink;}
            </style>

(3)class选择器

语法:.class的值{css属性}
示例:

            <div class="style1">div1</div>
            <div class="style1">div2</div>
            <div class="style2">div3</div>
            <style type="text/css">
                .style1{background-color: red}
                .style2{background-color: pink}
            </style>

2、属性选择器(a、input、p…)

语法:基本选择器[属性=‘属性值’]{css属性}
示例:

        <form action="">
            name:<input type="text" /><br/>
            pass:<input type="password" /><br/>
        </form>
        <style type="text/css">
            input[type='text']{background-color: yellow}
            input[type='password']{background-color: pink}
        </style>

3、伪元素选择器 (a:link、hover、active、visited)

a标签的伪元素选择器
语法:

  • 静止状态 a:link{css属性}
  • 悬浮状态 a:hover{css属性}
  • 触发状态 a:active{css属性}
  • 完成状态 a:visited{css属性}

示例:

            <a href="#">点击我吧</a>
            <style type="text/css">
                a:link{color:blue}
                a:hover{color:red}
                a:active{color:yellow}
                a:visited{color:green}
            </style>

4、层级选择器(#d1 .dd2 span)

语法:父级选择器 子级选择器 …..
示例:

        <div id="d1">
            <div class="dd1">
                <span>span1-1</span>
            </div>
            <div class="dd2">
                <span>span1-2</span>
            </div>
        </div>
        <div id="d2">
            <div class="dd1">
                <span>span1-1</span>
            </div>
            <div class="dd2">
                <span>span1-2</span>
            </div>
        </div>
        <style type="text/css">
            #d1 .dd2 span{color:red}
        </style>

5.伪类与 CSS 类

语法

伪类的语法:

selector : pseudo-class {property: value}CSS 类也可与伪类搭配使用。

selector.class : pseudo-class {property: value}

a.red : visited {color: #FF0000}

<a class="red" href="css_syntax.asp">CSS Syntax</a>

假如上面的例子中的链接被访问过,那么它将显示为红色。

6.子元素选择器

语法:

语法 父级选择器>子级选择器(中间用 “ > ”连接

如果您不希望选择任意的后代元素,而是希望缩小范围,只选择某个元素的子元素,请使用子元素选择器(Child selector)。

h1 > strong {color:red;}

这个规则会把紧跟 h1 下面的 strong 元素变为红色

选择相邻兄弟(h1+p)

语法: 标签+标签

用一个结合符只能选择两个相邻兄弟中的第二个元素

如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器(Adjacent sibling selector)。

例如,如果要增加紧接在 h1 元素后出现的段落的上边距,可以这样写:

h1 + p {margin-top:50px;}这个选择器读作:“选择紧接在 h1 元素后出现的段落,h1 和 p 元素拥有共同的父元素”。

锚伪类

在支持 CSS 的浏览器中,链接的不同状态都可以不同的方式显示,这些状态包括:活动状态,已被访问状态,未被访问状态,和鼠标悬停状态。

  • a:link {color: #FF0000} /* 未访问的链接 */
  • a:visited {color: #00FF00} /* 已访问的链接 */
  • a:hover {color: #FF00FF} /* 鼠标移动到链接上 */
  • a:active {color: #0000FF} /* 选定的链接 */

提示:在 CSS 定义中,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的。

提示:在 CSS 定义中,a:active 必须被置于 a:hover 之后,才是有效的。

提示:伪类名称对大小写不敏感。

标签:first-child 伪类

您可以使用 :first-child 伪类来选择元素的第一个子元素。这个特定伪类很容易遭到误解,所以有必要举例来说明。考虑以下标记:

<div>
<p>These are the necessary steps:</p>
<ul>
<li>Intert Key</li>
<li>Turn key <strong>clockwise</strong></li>
<li>Push accelerator</li>
</ul>
<p>Do <em>not</em> push the brake at the same time as the accelerator.</p>
</div>

伪类 第一个元素 first-child 或者nth-child(1)
其他: a:not(:first-child)

三、css属性

1、文字属性

  • font-size:大小
  • font-family:字体类型

2、文本属性

  • color:颜色
  • line-height:行高
  • text-decoration :文本装饰

    属性值

    - none
    - underline 会对元素加下划线
    - overline
    - line-through
    - blink


属性值:none underline
  • text-align:对齐方式

    属性值:left center right

    hello css!!!

    click me!!!

    div{color:red;text-decoration: underline;text-align: right }
    a{text-decoration: none;}

  • text-indent:文本缩进

所有元素的第一行都可以缩进一个给定的长度,甚至该长度可以是负值。

text-indent 还可以设置为负值。利用这种技术,可以实现很多有趣的效果,比如“悬挂缩进”,即第一行悬挂在元素中余下部分的左边:

3、背景属性

  • background:简写属性

    属性值: 颜色 url 平铺方式 移动位置(left top)

  • background-color:背景颜色

  • background-image:背景图片

属性值:url(“图片地址”);

  • background-repeat:平铺方式

    属性值:默认横向纵向平铺

    1. repeat:横向纵向平铺
    2. no-repeat:不平铺
    3. repeat-y:纵向
    4. repeat-x:横向

      body{
      background-color: black;
      background-image: url(“images/dog.gif”);
      background-repeat: repeat-y;
      }

注意:

如果文档比较长,那么当文档向下滚动时,背景图像也会随之滚动。当文档滚动到超过图像的位置时,图像就会消失。

您可以通过 background-attachment 属性防止这种滚动。通过这个属性,可以声明图像相对于可视区是固定的(fixed),因此不会受到滚动的影响:

body 
  {
  background-image:url(/i/eg_bg_02.gif);
  background-repeat:no-repeat;
  background-attachment:fixed
  }

CSS 背景属性

属性               描述 
  • background                     简写属性,作用是将背景属性设置在一个声明中。
  • background-attachment  背景图像是否固定或者随着页面的其余部分滚动。
  • background-color           设置元素的背景颜色。
  • background-image         把图像设置为背景。
  • background-position      设置背景图像的起始位置。
  • background-repeat        设置背景图像是否及如何重复。

4、列表属性

  • list-style-type:列表项前的小标志

属性值:太多了

  • list-style-image:列表项前的小图片

属性值:url(“图片地址”);

        <ul>
            <li>程序员</li>
            <li>程序员</li>
            <li>程序员</li>
            <li>程序员</li>
        </ul>
        <style type="text/css">
            /* ul{list-style-type: decimal-leading-zero;} */
            ul{list-style-image: url("images/forward.gif");}
        </style>

5、尺寸属性

  • width:宽度
  • height:高度

        <div id="d1">div1</div>
        <div id="d2">div2</div>
        <style type="text/css">
            #d1{background-color: red;width: 200px;height: 200px;}
            #d2{background-color: pink;width: 200px;height: 200px;}
        </style>
    

6、表格属性

  • border-collapse :折叠边框

    属性设置是否将表格边框折叠为单一边框

  • text-align 和 vertical-align 属性设置表格中文本的对齐方式。

    text-align 属性设置水平对齐方式,比如左对齐、右对齐或者居中:

    vertical-align 属性设置垂直对齐方式,比如顶部对齐、底部对齐或居中对齐

CSS Table 属性

属性                                       描述

border-collapse     设置是否把表格边框合并为单一的边框。 
border-spacing      设置分隔单元格边框的距离。 
caption-side        设置表格标题的位置。 
empty-cells         设置是否显示表格中的空单元格。 
table-layout        设置显示单元、行和列的算法。 
table
  {
  border-collapse:collapse;
  }

7、显示属性

  • display:

属性值:

  1. none:隐藏
  2. block:块级显示
  3. inline:行级显示
        <form action="">
            name:<input id="name" type="text" /><span id="span">对不起 输入不符合要求</span>
            <br>
            pass:<input id="pass" type="password" />
            <br>
            <input id="btn" type="button" value="button" />
        </form>
        <style type="text/css">
            span{color:red;display: none}
        </style>
        <script type="text/javascript">
            document.getElementById("btn").onclick = function(){
                document.getElementById("span").style.display = "inline";
            };
        </script>

8、浮动属性

float:
属性值:

  1. left
  2. right
  3. clear:清除浮动 left right both

缺点 :

  • (1)影响相邻元素不能正常显示
  • (2)影响父元素不能正常显示
相关文章
|
前端开发 JavaScript 开发者
CSS进阶-过渡与动画的事件监听
【6月更文挑战第16天】**CSS过渡和动画事件增强交互性,但监听与控制需谨慎。了解`transitionend`用于CSS过渡结束时的响应,避免过度使用JavaScript检测变化。示例代码展示如何绑定`transitionend`事件并在结束后执行操作。对于CSS动画,理解`animationstart`, `animationiteration`, `animationend`事件的生命周期至关重要,确保在动画结束后进行适当的清理。通过这些技巧,优化用户体验并提高代码效率。**
208 5
|
前端开发 JavaScript UED
CSS进阶 - CSS性能优化
【6月更文挑战第17天】**CSS性能优化关乎美观与速度。减少无用和重复样式,简化选择器,避免频繁重绘与回流,预加载关键CSS,以及模块化代码,能提升加载速度和用户体验。通过代码审查、工具辅助、选择器优化、使用transform和opacity、CSS预加载、以及文件拆分和模块化,开发者可应对复杂网页的性能挑战。**
244 2
|
前端开发 JavaScript 开发者
CSS进阶 - CSS Modules与预处理器简介
【6月更文挑战第17天】前端开发中,CSS Modules和预处理器(如Sass、Less)解决了大规模项目中CSS的管理难题,提升代码复用和维护性。CSS Modules提供局部作用域的类名,避免全局冲突,而预处理器扩展CSS功能,使代码更像编程语言。常见问题包括命名冲突和过度嵌套,可通过自动哈希、少嵌套、合理变量规划来解决。结合两者使用,遵循模块化和适度预处理原则,集成到构建工具中,能优化开发流程。这些技术是现代前端不可或缺的工具。
174 2
|
编解码 前端开发 UED
CSS进阶 - 响应式设计与媒体查询
【6月更文挑战第17天】响应式设计通过媒体查询适应不同设备,确保网页在桌面、平板、手机上提供优化体验。媒体查询是CSS核心技术,允许根据设备特性应用样式。常见问题包括忽视视口设置、硬编码断点和过度依赖查询。解决办法涉及设置正确的视口元标签、基于内容的断点和模块化设计。通过移动优先策略和灵活的断点管理,可创建高效、易维护的响应式网站。
169 1
|
前端开发
CSS进阶
CSS进阶内容
116 2
|
前端开发 JavaScript
CSS进阶-CSS选择器高级:伪类与伪元素
【6月更文挑战第13天】本文探讨了CSS伪类与伪元素的核心概念,包括伪类表示元素状态,伪元素创造抽象内容。常见问题涉及二者区别、冒号使用、顺序优先级及`content`属性。实践技巧涵盖`:not()`选择器、`:hover`与子元素伪类结合及自定义形状。通过代码示例展示了高亮悬停行、添加图标、首行样式和链接颜色的应用。理解并熟练运用伪类和伪元素可提升CSS设计效率和灵活性。
422 2
CSS进阶-CSS选择器高级:伪类与伪元素
|
前端开发 开发者 容器
CSS进阶-Grid布局高级应用
【6月更文挑战第16天】**CSS Grid布局是CSS3的强大力量,用于复杂二维布局。然而,隐式网格、未命名Grid线和缺少响应式设计是常见问题。解决方法包括显式定义网格结构、命名Grid线和结合媒体查询实现响应式。高级技巧涉及自适应列宽、复杂区域布局和元素层叠对齐。代码示例展示了响应式Grid的用法。掌握这些能提升布局效率和设计灵活性。**
269 11
|
前端开发 开发者 容器
CSS进阶-Flexbox高级布局技巧
【6月更文挑战第16天】Flexbox是CSS3的布局模块,简化响应式设计和复杂多列布局。文章探讨了Flex容器与项目属性的区分、垂直居中、防止元素溢出等常见问题及解决方案。此外,还分享了等宽不同高列、圣杯布局和自适应间距等高级技巧。通过示例展示了如何创建垂直居中布局,强调实践和理解核心概念是掌握Flexbox的关键。
443 10
|
前端开发 开发者 异构计算
CSS进阶-CSS动画关键帧
【6月更文挑战第15天】CSS的`@keyframes`创建细腻动画,定义样式变化阶段以增强网页互动性。通过`animation`属性应用动画,如`fadeIn`示例。常见问题包括动画结束状态、卡顿和浏览器兼容性,解决办法涉及优化关键帧、使用硬件加速和添加前缀。进阶技巧包括多步骤动画和控制播放状态。例如,背景色渐变动画展示了颜色随时间变化的效果。学习和实践关键帧动画,提升Web开发技能。
454 7
|
前端开发 JavaScript UED
CSS进阶-3D变换与透视效果
【6月更文挑战第15天】CSS3的3D变换和透视效果增强了网页的深度感。通过`rotateX/Y/Z`旋转和`translateZ`移动,结合`perspective`属性可创建3D空间。`perspective`定义观察者与Z轴的距离,影响元素的缩放感。常见问题包括过度失真和元素遮挡顺序,可通过调整`perspective`值和使用`z-index`解决。进阶技巧涉及层叠上下文理解和3D卡片翻转效果,通过实践与探索,设计师能更好地利用这些工具创新用户体验。
333 6