HTML培训NO.4

作业总结

input输入框(带搜索按钮)

<style>
#aim{
		position:relative;
        left:100px;
        background:transparent;/*使输入框透明*/
        height:30px;
        width:200px;
        font-size:16px;
        border:1px solid rgb(150,150,150);
        outline:none;
        
        background-image:url(搜索.png);/*设置小图标*/
        background-size:25px 25px;/*小图标的大小*/
        background-position:170px 4px;/*小图标在input的位置*/
        background-repeat:no-repeat;/*背景小图标不重复*/
}
</style>
<body>
<input type="text" placeholder="请输入关键字" id="#aim">
</body>

label自动聚焦
设置label标签的for属性值与表单元素的id属性值对应,当点击label属性时会自动给表单元素聚焦

下拉列表

<body>
<div class="menu">
    <!--三个下拉所属的一个大div-->
    <div class="item">
        <!--不下拉的时候显示的div-->
        <div class="itemvalue">1</div>
        <div class="itembox">
        <!--下拉出来的div-->
        <ul>
            <li>1.1</li>
            <li>1.2</li>
            <li>1.3</li>
            <li>1.4</li>
        </ul>
        </div>
    </div>

    <div class="item">
        <div class="itemvalue">2</div>
        <div class="itembox">
        <ul>
            <li>2.1</li>
            <li>2.2</li>
        </ul>
        </div>
    </div>
    <div class="item">
        <div class="itemvalue">3</div>
        <div class="itembox">
        <ul>

        </ul>
        </div>
    </div>
</div>
</body>
</html>
<style>
        *{
            /*去除影响*/
            margin: 0;
            padding: 0;
        }
        div.item{
            float:left;/*使得可以在同一行排列*/
            width:20em;
        }
        li{
            list-style: none;
            /*使得列表没有图标*/
        }
        
        .menu{
            width: 100%;/*25%是垂直列表,100%是水平列表*/
            height: auto;
            /*height:auto,是指根据块内内容自动调节高度。
            height:100%,是指其相对父块高度而定义的高度,也就是按照离它最近且有定义高度的父层的高度来定义高度。*/
            margin: 40px auto;/*上下margin为40px,左右居中*/
            position:absolute;
            /*绝对定位*/
        }
        /**/
        .item{
            width: 100%;
            height: auto;
        }
        .item  .itemvalue{
            height: 40px;
            line-height: 40px;
            background-color: rgb(34,67,128);
            color: white;
            padding-left: 10px;
            border-right:green; 
            /* 蓝色边框给item文本h3 */
            border-style:solid;
            border-right-width:1px;
        }
        .item  .itembox{
            width: 100%;
            height: 0px;
            /*没有下拉的时候要设置为0px*/
            overflow: hidden;  /*元素溢出时隐藏*/
        }
        .item:hover  .itembox{
            height: auto;/*box自动高度*/
            /*原来是设置为了0px,设置为自动高度的话就可以撑开*/
        }
        li:hover /*li悬停变色*/
        {
            background-color: tan;
        }
        .item  .itembox  ul{
            width: 100%;
            height: auto;
            background-color: rgb(34,67,128);
            padding: 10px;
        }
    </style>

实现效果在这里插入图片描述

知识学习

id和class选择器

id选择器

id选择器可以为标有特定id的HTML元素指定特定的样式。HTML元素以id属性来设置id选择器,CSS中id选择器以“#”来定义。

#para1{
	text-align:center;
	color:red;
}

class选择器

class选择器用于描述一组元素的样式,class选择器有别于id选择器,class可以在多个元素中使用。
class选择器在HTML中以class属性表示,在CSS中,类选择器以一个点"."表示:

.center{text-align:center;}
所有拥有center类的HTML元素均为居中

也可以指定特定的HTML元素使用class。
在以下实例中,所有的p元素使用class = "center"让该元素的文本居中。

p.center{text-align:center}

如何插入样式表

CSS 可以通过以下方式添加到HTML中:

  • 内联样式- 在HTML元素中使用"style" 属性
  • 内部样式表 -在HTML文档头部 区域使用<style>元素 来包含CSS
  • 外部引用 - 使用外部 CSS 文件

内联样式表

使用<style>标签在文档头部定义内部样式表。

<head>
<style>
hr{color:sienna;}
p {margin-left:20px;}
body{background-image:url("images/back40.gif");}

内联样式

由于要将表现得内容混杂在一起,内联样式会损失掉样式表得许多优势。

<p style="color:sienna;margin-left:20px">这是一个段落。</p>

多重样式

如果某些属性在不同得样式表中被同样的选择器定义,那么属性值将从更具体的样式表中被继承过来。
例如,外部样式表拥有针对 h3 选择器的三个属性:

h3
{
    color:red;
    text-align:left;
    font-size:8pt;
}

而内部样式表拥有针对 h3 选择器的两个属性:

h3
{
    text-align:right;
    font-size:20pt;
}

假如拥有内部样式表的这个页面同时与外部样式表链接,那么h3得到的样式是

color:red;
text-align:right;
font-size:20pt;

即颜色属性将被继承于外部样式表,而文字排列(text-alignment)和字体尺寸(font-size)会被内部样式表中的规则取代。

多重样式优先级

样式表允许以多种方式规定样式信息。样式可以规定在单个的HTML元素中,在HTML页得头元素中,或在一个外部的css文件中。甚至可以在同一个HTML文件内部引用多个外部样式表。
一版情况下,优先级如下**(内联样式) inline style > (内部样式) Internal style sheel > (外部样式) External style sheet > 浏览器默认样式 **
注意:如果外部样式放在内部样式的后面,则外部样式将覆盖内部样式。

<head>
    <!-- 外部样式 style.css -->
    <link rel="stylesheet" type="text/css" href="style.css"/>
    <!-- 设置:h3{color:blue;} -->
    <style type="text/css">
      /* 内部样式 */
      h3{color:green;}
    </style>
</head>
<body>
    <h3>测试!</h3>
</body>

css组合选择器

css样式的优先级,是根据选择器的精确度/权重来决定的,常见的权重如下,权重越大,优先级越高

  • 元素选择器:1
  • 类选择器:10
  • id选择器:100
  • 内联样式:1000
    在CSS中包含了四种组合方式:后代选择器(以空格分割),子元素选择器(以大于号分割),相邻兄弟选择器(以加号分隔),普通兄弟选择器(以波浪线分割)。

后代选择器(派生选择器)

选择指定元素的所有指定后代元素,以空格隔开

选择器1 指定元素{
	属性名:属性值;
	......
}

子代选择器

选择指定元素的第一代子元素,以大于号>隔开

相邻兄弟选择器

选择指定元素的下一个指定元素(得相邻,中间不可有其他的元素),两者有相同的父元素,以 + 隔开。

/*后代选择器*/
        .food li{
            border:green solid 1px;
            
        }
        /*子代选择器*/
        .food2 > li{
            border:blue dotted 1px; 
        }
        /*相邻兄弟选择器*/
        #mydiv + div{
            border:blue solid 2px;
        }
<ul class="food">
        <li>水果
            <ul>
                <li>香蕉</li>
                <li>苹果</li>
                <li></li>
            </ul>
        </li>
        <li>蔬菜
            <ul>
                <li>白菜</li>
                <li>油菜</li>
                <li>卷心菜</li>
            </ul>
        </li>
    </ul>
    <hr>

    <ul class="food2">
        <!--只作用于水果这一个li,里面的香蕉,苹果,梨都没有受影响-->
        <li>水果
            <ul>
                <li>香蕉</li>
                <li>苹果</li>
                <li></li>
            </ul>
        </li>
        <li>蔬菜
            <ul>
                <li>白菜</li>
                <li>油菜</li>
                <li>卷心菜</li>
            </ul>
        </li>
    </ul>
    <hr>
    <div>相邻兄弟选择器</div>
    <div id = "mydiv">相邻兄弟选择器</div>
    <!--若此行加上<p>Test</p>,不仅<p>标签内内容不会发生变化,后面的那个<div>内容也不会发生变化
    因为<p>标签的出现,使得div之间不再相连-->
    <div>相邻兄弟选择器</div>
    <div>相邻兄弟选择器</div>

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值