把input放在无序列表里,设置ul宽504,最后一个li(提交按钮)水平居中为什么用margin:0 auto无效,用textalign:center才有效

把input放在无序列表里,设置ul宽504,最后一个li(提交按钮)水平居中为什么用margin:0 auto无效,用textalign:center才有效

# 具体遇到的问题
把input放在无序列表里,设置ul宽504,最后一个li(提交按钮)水平居中为什么用margin:0 auto无效,用textalign:center才有效

# 报错信息的截图

# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

在这里输入代码,可通过选择【代码语言】突出显示

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

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

4回答
好帮手慕言 2020-11-21 14:10:15

同学你好,根据同学的描述,解答如下:

1、如果input和li的宽度一致,input是会水平居中的。

2、如果input和li的宽度不一致,li会水平居中,input会随着li移动,但是input不会在li中水平居中,而是会靠着li左侧排列,如下图:

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

祝学习愉快~

好帮手慕言 2020-11-21 10:03:13

同学你好,给li设置margin:0 auto;和宽度可以让li自身水平居中,但是不能让按钮在li中水平居中,如果想让按钮在li中水平居中,可以使用下方方式:

方式一:li设置text-align: center;也就是同学代码中的写法。

方式二:给按钮设置为块元素,配合margin:0 auto;实现水平居中的效果,代码参考:
http://img1.sycdn.imooc.com//climg/5fb872de09c1611c05740112.jpg

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

祝学习愉快~

  • 提问者 慕仙2169824 #1
    按照你说的“给li设置margin:0 auto;和宽度可以让li自身水平居中” 我的意思是:我给li设置与input一样的宽度,既然margin:0 auto;可以让li居中,li里面的input不应该跟随li一起相对于ul居中吗
    2020-11-21 10:31:06
慕仙2169824 提问者 2020-11-21 09:07:08

HTML部分:

<main>

        <!-- banner -->

        <section class="banner">

            <img src="images/banner3.jpg" alt="">

            <div class="mask">

                <ul>

                    <li><input type="text" placeholder="your Name"></li>

                    <li><input type="text" placeholder="your Phone"></li>

                    <li><input type="email" placeholder="your Email"></li>

                    <li><textarea placeholder="Write Your Commernt Here"></textarea></li>

                    <li><input type="submit" value="SEND MASSAGE" ></li>

                </ul>

            </div>

        </section>

    </main>





CSS部分:

/* 主体遮罩层样式 */

main .banner {

    width100%;

    height600px;

    positionrelative;

}


/* 图片 */

main .banner img{

    width100%;

}


/* 遮罩层 */

main .banner .mask{

    width100%;

    height713px;

    background-color: rgba(0,0,0,.7);

    positionabsolute;

    top0;

}


/* 遮罩层内的文本框 */

main .banner .mask ul{

    width504px;

    height360px;

    positionabsolute;

    top:50%;

    left50%;

    margin-top-180px;

    margin-left-252px;

    color#808080;;

}


/* 设置表单宽度和透明 */

main .banner .mask ul li textarea,main .banner .mask ul li input{

    background-color:transparent ;

    width502px;

}


/* 设置文本框的高度、间隙、边框 */

main .banner .mask ul li input{

    height40px;

    margin-bottom20px;

    border:1px solid #808080;

}


main .banner .mask ul li textarea{

    height110px;

    margin-bottom20px;

    border:1px solid #808080;

}


/* 提交按钮上的字的颜色、外边距、边框 */

main .banner .mask ul li input[type="submit"]{

    margin0;

    width200px;

    border:1px solid #808080;

    color#808080;

}


/* 提交按钮所在的li相对于ul水平居中 */

main .banner .mask ul li:last-child{

    text-aligncenter;

}


好帮手慕言 2020-11-20 19:12:58

同学你好,是给li标签设置的margin:0 auto;吗?如果是的话,这句代码是让li水平居中,按钮不会水平居中,button是内联块元素,给按钮设置margin:0 auto;不会居中,可以给父级li设置text-align: center;

如果想让按钮配合margin实现水平居中的效果,可以给按钮设置为块元素(display: block;),再设置margin:0 auto;

如果上述方法不可以,建议:把代码粘贴上来,祝学习愉快~

  • 提问者 慕仙2169824 #1
    是给li标签设置的margin:0 auto;但是input提交按钮在li里面啊,li如果居中了,不能让里面的按钮居中吗
    2020-11-21 09:03:47
  • 提问者 慕仙2169824 #2
    <main> <!-- banner --> <section class="banner"> <img src="images/banner3.jpg" alt=""> <div class="mask"> <ul> <li><input type="text" placeholder="your Name"></li> <li><input type="text" placeholder="your Phone"></li> <li><input type="email" placeholder="your Email"></li> <li><textarea placeholder="Write Your Commernt Here"></textarea></li> <li><input type="submit" value="SEND MASSAGE" ></li> </ul> </div> </section> </main>
    2020-11-21 09:06:10
  • 提问者 慕仙2169824 #3
    /* 主体遮罩层样式 */ main .banner { width: 100%; height: 600px; position: relative; } /* 图片 */ main .banner img{ width: 100%; } /* 遮罩层 */ main .banner .mask{ width: 100%; height: 713px; background-color: rgba(0,0,0,.7); position: absolute; top: 0; } /* 遮罩层内的文本框 */ main .banner .mask ul{ width: 504px; height: 360px; position: absolute; top:50%; left: 50%; margin-top: -180px; margin-left: -252px; color: #808080;; } /* 设置表单宽度和透明 */ main .banner .mask ul li textarea,main .banner .mask ul li input{ background-color:transparent ; width: 502px; } /* 设置文本框的高度、间隙、边框 */ main .banner .mask ul li input{ height: 40px; margin-bottom: 20px; border:1px solid #808080; } main .banner .mask ul li textarea{ height: 110px; margin-bottom: 20px; border:1px solid #808080; } /* 提交按钮上的字的颜色、外边距、边框 */ main .banner .mask ul li input[type="submit"]{ margin: 0; width: 200px; border:1px solid #808080; color: #808080; } /* 提交按钮所在的li相对于ul水平居中 */ main .banner .mask ul li:last-child{ text-align: center; }
    2020-11-21 09:07:58
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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