问下那个三角形定位的问题

问下那个三角形定位的问题

想问下是不是img加了position: relative; 三角形添加了absoulute,意思就是三角形相对于img的位置给他进行一个绝对定位?为什么我加了以后三角形不能相对于图片定位到相应的位置,给他设置的top值是整个页面的值了。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <link rel="stylesheet" href="./css/index.css">
</head>
<body>
<div class="header">
    <div class="logo">
    <img src="./images/logo.png">
    </div>
    
    <div class="nav">
        <ul>
            <a href="#"><li>HOME</li></a>
           <a href="#"><li>ABOUT</li></a>
           <a href="#"><li>GALLERY</li></a>
           <a href="#"><li>FACULTY</li></a>
           <a href="#"><li>EVENTS</li></a>
           <a href="#"><li>CONTACT</li></a>
        </ul>
    </div>
</div>
<div class="clear"></div>
<!-- Container区域 -->
<div class="container">
    <!-- bannert区域 -->
<div class="banner">
        <div class="bgcolor"></div>
        <img src="./images/banner3.jpg">
        <div class="divtext">
                <form>
                        <input type="text" name="name"  placeholder="your Name"/>
                        <br>
                        <input type="text" name="name"  placeholder="your Phone"/>
                        <br>
                        <input type="text" name="name"  placeholder="your Email"/>
                        <br>
                        <textarea name="write"  placeholder="Wirte Your Comment Here"></textarea>
                        <br>
                        <input type="submit" name="button" value=" SEND MESSAGE"/>
                    </form>
                </div>
        </div>
        <div class="clear"></div>
     <!-- about区域 -->
        <div class="about">
         <!-- 文本区域上 -->
        <div class="abtext">
        <div class="text1">ABOUT</div>
        <div class="line"></div>
        <div class="text2">Lorem ipsum is simply dummpy text of the printing and typesetting <br>industy. Lorem Ipsum has been the industry's standard dummy<br> text ever since the 1500s.</div>    
        </div>
         <!-- 文本区域下-->
         <div class="bottom">

            <div class="left">
                <h1>A WORD<br> ABOUT US</h1>
            </div>
            
            <div class="middle">
                <img src="./images/bb3.jpg">
            </div>

            <div class="right">
                <div class="topbk">
                    <div class="text1">70000</div>
                    <div class="line"></div>
                    <div class="text2">students</div>
                </div>

                <div class="bottombk">
                        <div class="text1">600</div>
                        <div class="line"></div>
                        <div class="text2">faculty</div>
                </div>              
            </div>

            <div class="fly">
                <P>praesent dignissim viverra est,sed<br> bibendum ligula congue non.sed ac nisl<br> et felis gravida commodo?Suspendisse<br> eget ullamcoper ipsum.suspendisse<br> diam amet.</P>
                <button class="button">EXPLORE</button>
                <div class="bgc"></div>
                </div>
        </div>
        <!-- about区域 -->
    </div>
    <div class="abouttwo">
        <!-- line1区域 -->
        <div class="line1">
            <div><img src="./images/b1.jpg">
                <div class="sj"></div>
            </div>
            <div class="bgc">
                <h1>Library</h1>
                             <h3>
                                Lorem Ipsum is simply dummy text of the printing and typesettingindustry
                             </h3>
                             <p>
                                Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
                             </p>
                             <button class="button">EXPLORE</button>
            </div>
            <div><img src="./images/b2.jpg"></div>
            <div class="bgc">
                <h1>Computer Lab</h1>

                            <h3>
                                Lorem Ipsum is simply dummy text of the printing and typesettingindustry
                            </h3>
                            <p>
                                Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
                            </p>
                            <button class="button">EXPLORE</button>
            </div>
        </div>

       <!-- line2区域 -->
        <div class="line2">
                <div class="line1">                      
                        <div class="bgc">
                            <h1>Conference Hall</h1>
                            <h3>
                             Lorem Ipsum is simply dummy text of the printing and typesettingindustry
                             </h3>
                             <p>
                             Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
                            </p>
                            <button class="button">EXPLORE</button>
                        </div>
                        <div><img src="./images/b3.jpg"></div>                       
                        <div class="bgc">
                            <h1>Play Ground</h1>
                            <h3>
                                Lorem Ipsum is simply dummy text of the printing and typesettingindustry
                            </h3>
                            <p>
                                Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
                            </p>
                            <button class="button">EXPLORE</button>
                        </div>
                        <div><img src="./images/b4.jpg"></div>
                    </div>
        </div>
        <!-- abouttwo区域 -->
    </div>
    <div class="gallery"></div>
<!-- Container区域 -->
</div>
</body>
</html>
*{
    padding:0;
    margin:0;

}
.clear{
    clear:both;
}
.header{
    background: #07cbc9;
    width:100%;
    height:80px;
    position: fixed;    
    top:0;
    z-index:2;
}
.logo{    
    float:left;
    padding-left:80px;
    padding-top:20px;
}

.nav{
    float:right;
    padding-right:50px;
    padding-top:0;
    line-height:80px;
    height:80px;
}
.nav ul li{
    display:block;
    padding-right:20px;
    float:right;
    color:white;
}
.banner .bgcolor{
    background:black;
    width:100%;
    height:800px;
    position: absolute;
    opacity: 0.5;
}
.banner img{
    width:100%;
    height:800px;
    padding-top:0;
}

.banner{
    width:100%;
    padding-top: 0;
    
}
.banner  input{
    width:500px;
    height:50px;
    border:2px solid #ccc;
    margin:10px;
    
}
.banner input:hover{
    border: 2px solid #07cbc9;
}
.banner textarea:hover{
    border: 2px solid #07cbc9;
}

.banner  textarea{
    width:500px;
    height:115px;
    border:2px solid #ccc;
    margin:10px;
}

.banner .text{
    padding-top: 0;
    
    
}
.divtext{
    position: absolute;
    height:800px;
    width:100%;
    text-align: center;
    top:241px;
    
    
}
.container{
    padding-top: 80px;
   
}
input,textarea{
    background: transparent;
    color: gray;        
    font-size: 14px;
}
.about{
    width:100%;
    height:800px;
    text-align: center;
    
}
.about img{
    width:568px;
    height:380px;
    position: absolute;
    
    
    z-index:-1;
} 

.about .abtext .line{
    margin:10px auto;
}

.about .abtext .text3{
    color:gray;
    font-size: 12px;
    margin:55px;
}
.about .abtext .text1 {
    font-weight: bold;
    font-size: 48px;
    
}
.abtext{
    padding-top:50px;

}
.about .abtext .line{
    background: #07cbc9;
    width:40px;
    height:2px;
    text-align: center;
}
.about .button{
width:102px;
height:45px;
line-height:45px;
background:black;
color:white;
font-size: 14px;
margin-top: 20px;
position: absolute;


}
.about .button1{
    margin-left:-800px;
    position: relative;
    z-index:1;
    
}
.about .bk1{
    position: relative;
    background:white;
    opacity: 0.8;
    height:246px;
    top:-200px;
    z-index:-1;
}
.container .about .bottom{
    width: 1200px;
    height:500px;
    margin: 50px auto;
    position: relative;
    
}
.container .about .bottom h3,.middle ,.left,.right{
    float:left;

}
.container .about .bottom .right .topbk , .bottombk{
    width:238px;
    height:144px;
    border:1px solid #07cbc9;
    margin-bottom: 30px;
    margin-left: 720px;
}
.container .about .bottom .middle img{
    padding-left:126px;
}

.about .bottom .right .topbk .line{
    background: #07cbc9;
    width:40px;
    height:2px;
    margin-left:100px;
    margin-top:15px;
}
.about .bottom .right .topbk .text1{
    font-size:30px;
    font-weight: bold;
    padding-top:20px;
}
.about .bottom .right .topbk .text2{
    
    padding-top:10px;
    font-size:20px;
    font-weight: bold;
    
}

.about .bottom .right .bottombk .line{
    background: #07cbc9;
    width:40px;
    height:2px;
    margin-left:100px;
    margin-top:15px;
}
.about .bottom .right .bottombk .text1{
    font-size:30px;
    font-weight: bold;
    padding-top:20px;
}
.about .bottom .right .bottombk .text2{
    
    padding-top:10px;
    font-size:20px;
    font-weight: bold;
}
.container .about .bottom .fly{
    float:left;
    position: absolute;
    top:150px;
    left:50px;
    z-index: 1;
    text-align: left;
    color:black;
}


.container .about .bottom .fly .bgc{
    background: white;
    opacity: 0.5;
    width: 370px;
    height: 246px;
    position: absolute;
    top:-40px;
    left:-40px;
    z-index: -1;
    border:1px solid gray;
}

.container .abouttwo{
    width: 100%;
    height:800px;
    
}
.container .abouttwo .line1 .bgc{
    width: 25%;
    height: 400px;
    background: #07cbc9;
    float:left;
    position: relative;
    
    
}
.container .abouttwo .line1 img {
    float: left;
    width:25%;
    height: 400px;
    position: relative;
}
.sj:before{
    content: "";
    position: absolute;
    width:0;
    height:0;
    right:0;
    border-top:15px solid transparent;
    border-right:25px solid #07cbc9;
    border-bottom:15px solid transparent;
    top:150px;
    z-index: 999;
}
.container .abouttwo .line1 , .line2{
    width: 100%;
    height:400px;
    
}

.container .abouttwo .line1 .bgc h3, .container .abouttwo .line1 .bgc p{
    color: white;
    padding:15px 100px;
}
.line1 .bgc h1{
    padding-top:40px;
    padding-left:100px;
    color: white;
}
.container .abouttwo .line1 .bgc .button{
        width:102px;
        height:45px;
        line-height:45px;
        background:black;
        color:white;
        font-size: 14px;
        margin-top: 25px;
        margin-left: 40%;
        position: absolute;
}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕星星 2019-12-01 17:58:54

同学你好,问题解答如下:

1、老师的意思是给图片和三角形的直接父元素添加class类:

http://img1.sycdn.imooc.com//climg/5de38cb709a8a7d507190098.jpg

line1是第一行中所有元素的父元素:

http://img1.sycdn.imooc.com//climg/5de38cd709929f7b04160233.jpg

例如:

http://img1.sycdn.imooc.com//climg/5de38d2309cc366407250250.jpg

http://img1.sycdn.imooc.com//climg/5de38d5709abce1f04760443.jpg

2、如果给line1类设置相对定位,给sj绝对定位也是可以的,但是定位不好计算。line1是一排中大盒子,那么三角形定位的left值不能精确计算,例如:当设置为25%的时候位置

http://img1.sycdn.imooc.com//climg/5de38e5609a2575404850655.jpg

http://img1.sycdn.imooc.com//climg/5de38e9709c5d15907950739.jpg

所以给同学提供的建议设置设置在直接父元素上,相对于父元素定位,设置right为0就可以了。建议同学详细测试下区别。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

好帮手慕星星 2019-12-01 17:18:27

同学你好,>是子代选择器的意思(在后面css3选择器中会学习到)。前面我们学习了后代选择器,这个选择器会选择所有后代元素,例如:

http://img1.sycdn.imooc.com//climg/5de384ae0968dae204370414.jpg

2和4都有边框:http://img1.sycdn.imooc.com//climg/5de38463097e8ff305620188.jpg

而子代元素只选择有直接父子关系的元素,例如:

http://img1.sycdn.imooc.com//climg/5de384be09bfea9f04620416.jpg

只有2有边框:

http://img1.sycdn.imooc.com//climg/5de384cb09ac76e807290193.jpg

老师给你修改的代码中用了>选择器是因为.line1元素后代有多个div:

http://img1.sycdn.imooc.com//climg/5de38520099b86a304950198.jpg

我们只是想要它的直接子元素div,也就是图片和sj的父元素。或者同学可以给父元素都添加class类,用类选择器。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 陈立天 #1
    父元素都添加class类 用类选择器? line1不就是嵌套了img 和sj了吗? 所以他们的父元素不就是line1吗 为什么给line1类设置相对定位不能给sj绝对定位?那要怎么操作
    2019-12-01 17:36:16
好帮手慕星星 2019-12-01 15:32:55

同学你好,代码中图片和三角形是同级的:

http://img1.sycdn.imooc.com//climg/5de3694809858b8204310057.jpg

不能设置三角形相对于图片进行定位,需要将相对定位添加在父元素上。例如:

给父元素设置宽高,浮动以及相对定位

http://img1.sycdn.imooc.com//climg/5de36c7b09d7ca4f05360820.jpg

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 陈立天 #1
    第一个粉色框框的 .line1>div 的大于号“>”是什么意思
    2019-12-01 16:31:12
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师