css - 遇到一个样式问题

 n_light征蓝妙 发布于 2022-11-05 17:06

就是想做个小验证 如果没有输入内容就在失去焦点时把边框变成红色 我是这么设置的样式1px solid red 代码运行没问题 但是鼠标离开输入框时边框不但变成了红色还有一个细微的变化就是失去焦点的这一行和上一行的间距缩小了那么一点 就是margin-top发生了变化 我把失去焦点的边框变成2px solid red间距就没变化 但是改成2px就太难看了 这个应该怎么办呢?




    
    
        
    
    
    
    


用 户 名:
密  码:
确认密码:
邮  箱:

6 个回答
  • 设置 box-sizing: border-box; 可以让边框的粗细不影响整个内容的宽高;box-sizing:content-box | border-box
    默认值:content-box
    适用于:所有接受width和height的元素
    继承性:无
    动画性:否
    计算值:指定值

    content-box: padding和border不被包含在定义的width和height之内。对象的实际宽度等于设置的width值和border、padding之和,即 ( Element width = width + border + padding )
    此属性表现为标准模式下的盒模型。
    border-box: padding和border被包含在定义的width和height之内。对象的实际宽度就等于设置的width值,即使定义有border和padding也不会改变对象的实际宽度,即 ( Element width = width )
    此属性表现为怪异模式下的盒模型。

    2022-11-12 01:53 回答
  • 题主提到的:

    失去焦点的这一行和上一行的间距缩小了那么一点 就是margin-top发生了变化

    这一点是有误的,margin-top并不会变化,真实的情况是这样:

    input元素的默认border是2px,因此动态修改为1px后会有一个抖动。如@zhangpenglin的回答那样把初始的input的border设置为1px就可以了。

    2022-11-12 01:53 回答
  • input默认border-size是2px,在程序中修改为1px后,占用的空间小了,因此可以看到其他元素都往上移动了一点。
    解决方式是设置input默认的边框为1px

    input {
        border: 1px solid silver;
    }
    2022-11-12 01:53 回答
  • 给p input加个border样式不就行了

    2022-11-12 01:53 回答
  • 试一下把每一行都用p包起来并且设margin,取消input的margin

    2022-11-12 01:53 回答
  • p input{display: inline-block;width: 200px;height: 20px;border:1px solid #ccc}
    2022-11-12 01:53 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有