positon,text-align,margin的定位问题?小弟不太理解

positon,text-align,margin的定位问题?小弟不太理解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title></title>
  <style type="text/css">
    *{margin: 0; padding: 0;}
    .head{width: 100%;height: 90px; background-color: black;
        overflow: hidden;
        position: fixed;
        top: 0;
        z-index: 1;}
    .head .logo{
        width: auto;
        height: 90px;
        float: left;
    }
    .head .nav{
        float: right;
        margin-right: 80px;
    }
    .head .nav li{
        list-style-type: none;
        float: left;
        font-size: 20px;
        line-height: 90px;
        color: white;
        margin-right: 60px;
    }
    .head .nav:hover li{cursor:pointer;}
    /*内容框架*/
    .container{
        width: 100%;height: 4000px;
        margin-top: 90px;/********老师这里有一个问题*******/
        background-color: #00FFCC;
        overflow: hidden;
    }
    /*内容--左半部*/
    .container .left{
        width: 50%;height: 2000px;
        float: left;
        position: absolute;
        top:400px;
        left: 20%;
        overflow: hidden;
    }
    .container .left h4{
        font-size: 26px;
        font-weight: bold;
        margin-bottom: 20px;
    }
    .container .left .title{
        width: auto;
        height: auto;
        float: left;
    }
    .container .left .title li{
        border: 1px #00FFCC solid;
        background-color: pink;
        list-style-type: none;
        margin-bottom: 5px;
    }
    .container .left .list{
        width: auto;
        height: auto;
        margin-left: 30px;
        float: left;
    }
    .container .left .list li{
        border: 1px #00FFCC solid;
        list-style-type: none;
        margin-bottom: 5px;
    }  
 
    /*内容--右半部*/
    .container .right{
        width: 50%; height:2000px;
        position: absolute;
        top: 400px;
        left: 60%;
        float: left;
    }
    .container .right h4{
        font-size: 26px;
        font-weight: bold;
        margin-bottom: 20px;
    }
    .container .right div ul li{
        border: 1px #00FFCC solid;
        list-style-type: none;
        margin-bottom: 5px;
        float: left;
        margin-right: 50px;
    }
    .container .right .line_1{
        overflow: hidden;
    }
    .container .right .line_2{
        overflow: hidden;
    }
    .container .right .line_3{
        overflow: hidden;
    }
 
    /*尾部*/
    .foot{
        width: 100%;height: 80px;background-color: black;
        overflow: hidden;
        position: fixed;
        bottom: 0;
    }
 
    .foot .nav_2{
        margin-left: 20%;
        overflow: hidden;
    }
 
    .foot .nav_2 ul li{
        list-style-type: none;
        font-size: 26px;
        font-weight: bold;
        color: white;
        float: left;
        line-height: 80px;
        margin-right: 50px;
         
    }
     
    .foot .nav_2:hover li{cursor: pointer;}
 
    }
 
  </style>
</head>
<body>
    <div class="head">
        <div class="logo">
            <img src="http://img1.sycdn.imooc.com/climg//58c0d2d900016ce303000100.png">
        </div>
        <div class="nav">
            <ul>
                <li>课程</li>
                <li>职业路径</li>
                <li>实战</li>
                <li>猿问</li>
                <li>手记</li>
            </ul>
        </div>
    </div>
    <div class="container">
        <div class="left">
            <h4>课程推荐</h4>
            <div class="title">
                <ul>
                    <li>职业路径</li>
                    <li>职业路径</li>
                    <li>职业路径</li>
                    <li>职业路径</li>
                    <li>职业路径</li>
                </ul>
            </div>
            <div class="list">
                <ul>
                    <li>HTML5与CSS3实现网页动态</li>
                    <li>零基础入门Android语法与界面</li>
                    <li>IOS基础语法与常用控件</li>
                    <li>PHP入门开发</li>
                    <li>JAVA入门开发</li>
                </ul>
            </div>
        </div>
        <div class="right">
            <h4>相关课程</h4>
            <div class="line_1">
                <ul>
                    <li>HTML</li>
                    <li>CSS</li>
                    <li>JAVASCRIPT</li>
                </ul>
            </div>
            <div class="line_2">
                <ul>
                    <li>HTML5</li>
                    <li>CSS3</li>
                    <li>JQurey</li>
                </ul>            
            </div>
            <div class="line_3">
                <ul>
                    <li>移动端基础</li>
                    <li>移动端APP开发</li>
                </ul>
            </div>
        </dir>
    </div>
    <div class="foot">
        <div class="nav_2">
            <ul>
                <li>网站首页</li>
                <li>企业合作</li>
                <li>人才招聘</li>
                <li>联系我们</li>
                <li>常见问题</li>
                <li>友情链接</li>
            </ul>
        </div>
    </div>
</body>
</html>


老师我有两个问题想请教:1.我上面备注的地方,我把中间内容部分通过外边框挤出了90px(和头部一样高的)宽度,但是我在设置中间的“课程推荐”内容的时候我通过定位 position:absolute 来定位我内容的位置,当我设置top为0的时候,内容会给头部覆盖。 我自己的理解就是:“position是在可视区域进行调整的,所以设着为top设置为0的时候,会给覆盖。”这样理解对吗?

2.对于底部的居中问题:div,ul,li都是块元素,之前说text-align只对块级元素有效,但是这个text-align却不能实现居中效果;不仅这个我尝试过用margin:0 auto;对页尾进行居中但是也没效果,如果这个不行的话我又不太理解为什么margin-left:20%可以对我页尾列表进行挪动

正在回答

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

1回答
  1. 定位元素参照的不是可视区域 , 而是参照离它最近的已定位的祖先元素 ,.如果没有最近的已定位的祖先元素 , 那么元素会参照html定位 , 通俗的说 ,定位元素如果它的祖先元素( 如父元素 , 爷爷元素....)设置了定位 ,它会参照离它最近的祖先元素定位 , 也就是父元素 . 页面找不到div.left的已定位的祖先元素 , 它会根据整个html定位. 所以代码中可给它父元素设置相对定位:

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

    2.text-align主要是针对文本水平对齐 . (同学说的text-align只对块级元素有效是有课程中讲到吗 ? 可以告诉老师一下具体那节课程哦 ) . 可如下设置实现居中

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


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

如果使用margin:0 auto;的话需要给ul设置固定宽度:

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

希望解答了你的疑惑 , 祝学习愉快 ,望采纳

  • 精慕门8222655 提问者 #1
    谢谢老师,经过百度再自己琢磨也琢磨了几点出来了。和老师讲的一样。关于text-align我不知道有没记错笔记到时候返回去复习之后再回复老师您。谢谢指导
    2018-09-12 16:57:23
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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