给form和button设置了同样的width,都未设置他们border时,为什么显示长度不一样呢?

给form和button设置了同样的width,都未设置他们border时,为什么显示长度不一样呢?

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
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>这是一个HTML文件</title>
    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
 
        .bodybody{
            width:100%;
            margin-top: 100px;
            margin-bottom: 80px;
        }
 
        .headernav li,.footernav li,.left .left2list,.left .left1list{
            list-style: none;
        }
 
        .header{
            background:#000;
            width: 100%;
            height: 100px;
            min-width: 800px;
            position: fixed;
            top:0;
        }
 
        .pic{
            background:url("http://img1.sycdn.imooc.com/climg//59093e9c00016ce303000100.png") no-repeat;
            width:300px;
            height:100px;
            float:left;
        }
 
        .headernav{
            float: right;         
        }      
 
        .headernav li{
            line-height:100px;
            color:#fff;
            float:left;
            margin-right:40px; 
        }
 
        .left{
            width: 60%;
            height: 600px;
            background: #9cf;
            float: left;
        }
 
        .left1{
            float: left;
            margin-top:70px;
            margin-left: 110px;
            height: 10px;
            line-height: 40px;
        }
 
        .left1list span{
            background: pink;
        }
 
        .left2{
            float: left;
            margin-top:70px;
            margin-left: 140px;
            list-style:none;
            line-height: 40px;
        }
 
        .bodybody .middle{
            width: 1%;
            height: 600px;
            background:#f9c;
            float:left;
        }
         
        .bodybody .right{
           width: 39%;
           height: 600px;
           background: #9cf;
           float:right;
        }
 
         .footer{
            width: 100%;
            height: 80px;
            background: #000;
            position: fixed;
            bottom:0;
        }
 
         .footernav{    
           text-align:center;
         }
 
         .footernav li{
           display:inline-block;  
           color:#fff;        
           line-height:80px;  
           margin:0 20px;
         }
 
 
         /*input::-webkit-input-placeholder{
            color:#999;
        }  这是因为不同浏览器解析的原因
         */
 
        .form{
            color: #999;
            display: block;
            width: 150px;
            height: 25px;
            /*border: 1px solid #eee;*/
        }
 
        .button{
            width:150px;
            height:25px;
            background: pink;
            display: block;
            /*border: 1px solid #eee;*/
        }
 
        .login{
            margin-top:70px;
            margin-left:70px;
            line-height: 30px;
        }
 
        h2,.form,.button{
            margin: 20px;
        }
                     
    </style>
</head>
<body>
    <div class="header">
        <div class="pic"></div>
        <ul class="headernav">
            <li>课程</li>
            <li>职业路径</li>
            <li>实战</li>
            <li>原文</li>
            <li>手记</li>
        </ul>
    </div>
 
 
    <div class="bodybody">
        <div class="left">
            <div class="left1">
                <h2>课程推荐</h2>
                <ul class="left1list">
                    <li><span>职业路径</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;实现动态网页</li>
                    <li><span>职业路径</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;实现动态网页</li>
                    <li><span>职业路径</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;实现动态网页</li>
                    <li><span>职业路径</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;实现动态网页</li>
                    <li><span>职业路径</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;实现动态网页</li>
                </ul>
            </div>
 
            <div class="left2">
                <h2>相关课程</h2>
                <ul class="left2list">
                    <li>HTML CSS JAVASCRIPT</li>
                    <li>HTML5 CSS3 JAVASCRIPT</li>
                    <li>移动端基础 移动APPA开发</li>
                </ul>
            </div>
        </div>
 
        <div class="middle"></div>
 
        <div class="right">
            <div class="login">
            <h2>登录</h2>
            <input type="text" class="form" placeholder="请输入邮箱或手机">
            <input type="password" class="form" placeholder="请输入6-16位密码">
            <input type="submit" class="button"  value="登录">
            </div>
        </div>
    </div>
 
 
    <div class="footer">
        <ul class="footernav">
            <li>网站首页</li>
            <li>企业合作</li>
            <li>人才招聘</li>
            <li>联系我们</li>
            <li>常见问题</li>
            <li>友情链接</li>
        </ul>
    </div>
 
</body>
</html>

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

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

2回答
好帮手慕码 2019-04-19 15:28:13

同学你好!

你的理解是正确的。当input type为submit的(这里指的是按钮button)时候,它的边框是包含在宽度中的:

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

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

所以它的宽度想要设置的与form一样 就需要设置154px,y因为边框是2px的宽度,左右共4px。

而form的宽度如同学所说一样~

如果帮助到了你 望采纳 祝学习愉快~

好帮手慕码 2019-04-19 14:34:35

同学你好!

这是因为input有一个默认的边框宽度(标签自带):

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

且按钮颜色是pink所以会不太好观察,把他颜色设置为和input一样的时候就好观察一点:

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

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

如果帮助到了你 望采纳  祝学习愉快~

  • 提问者 Di1860 #1
    老师,是不是给button设置的边框是包含在给button设置的width里面的,所以为了对齐需要设置152px;而form的width只是他的长度,不包含边框,所以设置150px,然后如果给form设置了边框,这个时候其实整个form真正展现的长度应该是width+两个border的长度。我这样理解对不对呢?
    2019-04-19 15:17:05
  • 提问者 Di1860 #2
    根据您的回答,当我给form和button都不设置border的时候。因为.form其实就是input,此时我在CSS中给.form设置了width:150px是什么意思呢,是不是150px=146+4(input的自带边框),展示效果也是150px;然后button没有自带边框,所以在CSS里给Button设置width:150px,我理解它展示的就应该是150px。那既然不管怎么算,展示效果都是150px,为什么我上面的程序显示出来的form和button确实长度不一样
    2019-04-19 15:21:54
  • 提问者 Di1860 #3
    还是说他们的显示宽度是一样的?
    2019-04-19 15:23:13
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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