zoukankan      html  css  js  c++  java
  • 自学JavaWeb第二天_CSS3

    第二讲 CSS样式

    一、DIV+CSS简介

    (一)DIV+CSS简介

    1、DIV介绍

     

    DIV: 块级元素

    注意: DIV单独使用没有任何意义, 需要结合Css一起使用, 才可以设计出精美的网页;

    介绍了行内元素: span标签;

    关于span标签与div标签的区别:

    Div特点: 是块级标签, 会自动换行, 占一整行;

    Span特点: 是行内标签, 不会自动换行, 有多少内容占多大空间;

     

    2、CSS介绍

     

    Css: 层叠样式表;

    层叠: 一层一层的叠加

     

    Css的作用:  美化网页

    3、CSS引入方式

    引入方式:(三种)

    1. 行内样式

    在标签的开始标签中添加style属性;

     

    优缺点: 由于样式与结构未分离, 复用性不好, 实际开发不提倡使用, 只用来测试某个标签的样式;

    1. 内部样式

    head标签内添加style标签

     

     z

    优缺点: 如果只针对当前页面进行样式控制, 推荐使用内部样式, 但是样式还未完全分离, 复用性不好;

    1. 外部样式

     

    外部样式引入方式一:

     

    外部样式引入方式二:

     

    优缺点: 样式与代码完全分离, 样式文件可以使多个页面添加样式, 一般开发推荐使用;

    面试题:

    行内样式 > 内部样式 & 外部样式(后加载的先生效)

    4、CSS样式规则

    无论使用 HTML 还是 CSS 都需要遵从一定的规范。

    css 定义规则如下:

    选择器{

    属性名1:属性值1;

    属性名2:属性值2;

    ...

    或者:

    选择器{

    属性名1:属性值1;属性名2:属性值2;...

    选择器: css作用于当前HTML指定的对象

    {}: 限定范围, 花括号中的所有样式都是属于当前选择器;

     

    注意代码书写规范:

    1. 属性名和属性值之间是键值对关系;

    2. 属性名和属性值之间 用 “:” 连接,最后“;”结尾;

    3. 如果一个属性名有多个值,多个值之间用 空格 隔开。

    4. CSS 注释:/* 注释内容 */ 快捷键:ctrl + shift + /

     

    (二)CSS选择器

    1、选择器介绍

    想要将CSS样式应用于特定的HTML元素,首先需要找到该目标元素。在CSS中,执行这一任务的样式规则部分被称为选择器。

    常见选择器;

    全局选择器 *

    标签选择器

    Id选择器

    类选择器

    2、标签选择器

    HTML 标签指 HTML 的标记名称、如 divhtmlbodyinput 等。所有符合 HTML 规范的标记都

    可以作为标签选择器。

    写法格式:

    标签名{

    样式一;

    样式二;

    }

    代码准备

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title></title>

    </head>

    <body>

    <p>

    优就业是中公教育IT培训平台APP<br>优就业业务类型主要包括面授培训、

    网络远程教学培训、网络直播课程培训、IT类图书出版等。

    </p>

    <div></div>

    </body>

    </html>

     

    3、ID选择器

    ID选择器CSS中用“#”开头定义,后面跟随ID名称。 例#name

    ID为当前HTML元素的ID属性值。

    写法格式:

    #ID{

    样式一;

    样式二;

    ...

    }

    代码准备

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title>测试ID选择器</title>

    </head>

    <body>

    <div id="t01">

    <!-- div中定义一个input标签 -->

    <input id="username" type="text" />

    </div>

    </body>

    </html>

     

    4、类选择器

    css中类选择器使用“.”符号开头定义,后面跟随类名。例如:.name

    类名即是HTMLclass属性的值,大多数HTML元素都可以定义class属性。

    写法格式:

    .类名{

    样式一;

    样式二;

    ...

    }

    代码准备

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title>测试类选择器</title>

    </head>

    <body>

    <div class="c_01"></div>

    </body>

    </html>

     

    二、常用CSS样式

    (一)字体样式

    字体样式:

    属性名

    属性说明

    font-size

    字体大小

    font-style

    字体风格(取值:italic/normal...)

    取值(扩展):

    italic : 斜体。对于没有斜体变量的特殊字体

    normal : 默认值。正常的字体

    font-family

    字体类型(取值:隶书/微软雅黑...)

    font-weight

    字体粗细(取值:bold/normal...)

    取值(扩展):

    Normal  默认值。定义标准的字符

    bold 定义粗体字符

    bolder 定义更粗的字符

    lighter 定义更细的字符

    代码准备:

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title>字体样式</title>

    </head>

    <body>

    <p>窗前明月光</p>

    <p>疑似地上霜</p>

    </body>

    </html>

     

    (二)文本样式

    文本样式:

    属性名

    属性说明

    color

    文本颜色(取值:colorname#0000FF

    text-align

    文本对齐(取值:left/right/center...

    text-decoration

    文本装饰(取值:none/underline...)

    取值(扩展):

    none默认。定义标准的文本。

    underline定义文本下的一条线。

    overline定义文本上的一条线。

    line-through定义穿过文本下的一条线

    line-height

    设置行高

    代码准备:

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title></title>

    </head>

    <body>

    <p>窗前明月光</p>

    <p>疑似地上霜</p>

    </body>

    </html>

     

    (三)超链接伪类样式

    超链接伪类样式:

    属性名

    属性说明

    a:link{}

    未被访问时

    a:visited{}

    访问过后

    a:hover{}

    鼠标悬浮时

    a:active{}

    鼠标激活时

    代码准备:

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title></title>

     

    </head>

    <body>

    <a href="index.html">登录</a>

    </body>

    </html>

     

    //未访问时效果:

     

    //访问过后效果:

     

    //鼠标悬浮效果:

     

    //鼠标点击效果:

     

    (四)边框样式

    边框样式:

    属性名

    属性说明

    border-width

    边框宽度

    按方向设置:border-(left/right/top/bottom)-width

    border-color

    边框颜色

    按方向设置:border-(left/right/top/bottom)-color

    border-style

    边框风格

    按方向设置:border-(left/right/top/bottom)-style

     

    代码准备:

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title></title>

    </head>

    <body>

    <div class="circle"></div>

    </body>

    </html>

     

     

     

    简写方式:

     

    设置圆角边框:

    属性名

    属性说明

    border-radius

    圆角边框  属性取值单位可以是像素,也可以是百分比

    按方向设置值:border-(top/bottom)-(left/right)-radius

    该属性取值单位可以是像素,也可以是百分比,如果整体设置值,最多可以给四个值,按照左上,右上,右下,左下的顺序给值。

    一个值:四个角有相同的边界半径;

    两个值:第一个值表示左上角和右下角,第二个值表示右上角和左下角;

    三个值:第一个值表示左上角,第二个值表示右上角和左下角,第三个值表示右下角;

    四个值:左上,右上,右下,左下。

    设置圆形:

     

    按方向取值:

     

    (五)背景样式

    背景样式:

    属性名

    属性说明

     

    背景颜色

    background-image: url(img/1.jpeg);

    背景图片

    background-size: 100%;

    背景大小

    background-repeat:no-repeat(repeat-x/repeat-y/repeat);

    背景是否平铺

    background-position: center;

    背景偏移

    background-repeat: 是否平铺

    repeat-x : 水平方向平铺

    repeat-y : 垂直方向平铺

    Repeat  :  水平和垂直方向同时平铺

    No - repeat:不平铺

     

    (六)盒子模型

     

     

    图解:

     

    什么是盒子模型:

    CSS 的框模型 (Box Model) 规定了元素框 处理元素内容、内边距、边框  外边距  的方式

    平时我们所说的宽度和高度仅仅指的是内容的宽和高,而盒子的实际宽高通过下面的公式计算。

    盒子的宽度 = 内容宽度 + 左填充 + 右填充 + 左边框 + 右边框 + 左边距 + 右边距

    盒子的高度 = 内容高度 + 上填充 + 下填充 + 上边框 + 下边框 + 上边距 + 下边距

     

    属性解析:

    属性名

    属性说明

    内边距 padding

    内边距:也叫填充(padding),设置元素内容与元素边框之间的距离。

    填充的属性有四个取值:padding-(top/bottom/left/right) padding

    一个值:padding:20px; 表示四个方向都是20px

    两个值:padding:20px 30px ; 表示上下是20,左右是30

    三个值:padding:10px 20px 30px;表示上10px,右20px,下30px,左同右20px

    四个值:padding:10px 20px 30px 40px; 上右下左

    外边距 margin

    外边距 margin:也叫空白边(margin),位于盒子的最外围,设置不同元素之间, 它们边框与边框之间的距离。

    空白边的属性有五种:margin-(top/bottom/left/right) margin

    其赋值方式同padding

    代码准备:

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title></title>

    </head>

    <body>

    <div class="box">我是div</div>

    </body>

    </html>

     

    问题:

    1. 两个盒子纵向展示时, 当外边距发生冲突时, 两个盒子之间的距离取决于: 最大盒子的外边距;

     

    1. 两个盒子横向展示时, 当外边距发生冲突时, 两个盒子之间的距离取决于: 两个盒子外边距之和

     

    (七)布局样式

    从左向右排列: span  input

    从上到下排列: div p

    如果将这些默认从上到下的标签改变排列规则,按照从左到右的顺序排列,就需要用到浮动属性。

    属性解析:

    属性名

    属性说明

    float

    floatcss样式中的定位属性,用于设置标签对象的浮动布局,浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。

    浮动属性的取值有三个:

    left:元素左浮动     

    right:元素右浮动    

    none:默认值,不浮动

    注意:

    一个元素如果设置了浮动, 就会脱离标准文档流, 该元素就会改变其它元素在原文档中的位置, 因此, 浮动元素会对周边的元素发生改变(产生影响);

    什么是标准文档流?

     

    代码准备:

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title>布局样式</title>

    </head>

    <body>

    <div class="box1">

    box1

    </div>

    <div class="box2">

    box2

    </div>

    <div class="box3">

    box3

    </div>

    <p>

    优就业1024程序员节,为学员送福利.优就业认知之旅 带你转遍名企厂商.1024程序员节 举办 美食Party”,中公优就业学员素拓活动获圆满成功,优就业师生共进素质拓展课取得圆满成功.优就业1024程序员节,为学员送福利.优就业认知之旅 带你转遍名企厂商.1024程序员节 举办 美食Party”,中公优就业学员素拓活动获圆满成功,优就业师生共进素质拓展课取得圆满成功.

    </p>

    </body>

    </html>

     

    /*需求: 向盒子下边添加一篇文章, 不围绕盒子展示*/

    /*清除浮动效果 : clear

     取值: left: 清除左浮动

      right: 清除右浮动

      both: 清除两侧浮动

     注意:

      一般单独写一个div, 用来清除浮动;

     * */

     

    (八)定位技术

    HTML默认是流式布局(不会出现元素重叠),但在某些情况下需要改变元素的位置和标准布局方式。这时就可以采用定位技术。

    css中关于定位的属性是position:

    属性名

    属性说明

    position

    定位

    取值有如下几个:

    static静态的(默认值)表示默认流式布局  

    relative:相对定位,无论是在标准文档流中还是浮动流中,都是相对于元素自身位置进行偏移,偏移后原来的位置依然保留,会留下空白,因此不会改变其他元素的布局。  

    absolute:绝对定位的元素会脱离标准文档流,使用leftrighttopbottom等属性相对于其最近的一个已定位的父级元素进行绝对定位,如果元素的父级没有设置定位属性,则依据 body 元素左上角作为参考进行绝对定位。由于绝对定位的元素不在标准流中,因此会对其他元素的布局产生影响。

    fixed:固定定位与绝对定位类似,但它是相对于浏览器窗口定位,并且不会随着滚动条进行滚动。

    代码准备:

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title>定位</title>

    </head>

    <body>

    <div class="one">one</div>

    <div class="two">two</div>

    <div class="three">three</div>

    </body>

    </html>

     

     

     

     

     

     

     

     

     

    不会随着滚动条移动;

    (九)转换样式与列表样式

    HTML中有大量丰富的标签;

    定义不同的类型来区分: 一般会分为按块, 按行内, 行块来区分;

    块级元素: 以区域划分成块, eg:<p>, <div>, <h*>

    行内元素: 按行排列; eg: <span>, <b>, <i>

    行块元素: <img>, <input>

    在实际开发中, 希望以上三种排列方式可以相互转换, 需要用到了样式转换属性: display

    属性解析:

    属性名

    属性说明

    display

    用于定义建立布局时元素生成的显示框类型.

    其取值如下:

    inline:此元素将显示为行元素(行内元素display的默认值)

    block:此元素指定为块元素(块元素display的默认值)

    inline-block:将对象呈现为内联元素,对象内的元素块级展示。

    none:隐藏元素

     

    最终效果:

     

    代码准备:

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title>转换样式与列表样式</title>

    </head>

    <body>

    <ul>

    <li><a href="#">首页</a></li>

    <li><a href="#">登录</a></li>

    <li><a href="#">注册</a></li>

    </ul>

    </body>

    </html>

     

     

     

    面试题:(高频)

    floatdisplay属性的inline-block值的区别:

    1、浮动float横排显示的元素之间无外边距,而inline-block会有默认的外边距。

    2、浮动float让元素脱离当前文档流,呈环绕装排列,如遇上行有空白,而当前元素大小可以挤进去,这个元素会在上行补位排列,默认是顶部对齐。inline-block水平排列一行,即使元素高度不一,也会以高度最大的元素高度为行高,即使高度小的元素周围留空,也不会有第二行元素上浮补位。

    3、二者都能实现水平排列,优先使用inline-block,因为此种方式元素未脱离标准文档流,元素间的相对定位好调整。但当某些场景希望有些元素向左排列,有些元素向右排列,这时只能使用float

  • 相关阅读:
    Redis配置文件的使用
    WEB请求处理一:浏览器请求发起处理
    Nginx配置文件(nginx.conf)配置详解
    【node】------mongoose的基本使用
    Promise.resolve()与new Promise(r => r(v))
    promise是什么?
    apiDoc
    apiDoc 使用指南
    微信小程序-性能与体验优化
    微信小程序-调取上一页的方法
  • 原文地址:https://www.cnblogs.com/masterhxh/p/13633351.html
Copyright © 2011-2022 走看看