DOCTYPE引起的一系列问题-->Select样式,文本框样式width100%超过父容器

本文探讨了在IE8浏览器中不同的DOCTYPE声明如何影响HTML元素的样式呈现,特别是针对select和input元素,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTML <!DOCTYPE> 标签
<!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。
DOCTYPE的详细说明见W3Schcool:http://www.w3school.com.cn/tags/tag_doctype.asp


笔者的问题:
当不写DOCTYPE或者DOCTYPE为<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">之类的时。代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
    </head>
    <body>
        <select>
            <option>选项...</option>
        </select>
        <br><br>
        <div style="width:200px;background-color: green;">
             
        </div>
        <div style="width:200px;background-color: red;">
            <input type='text' style='width:100%;'>
        </div>
    </body>
</html>

IE8显示效果:

可以看到这个时候文本框的样式设置width=100% 没有问题的,但是select的样式却奇丑无比。。。

当把DOCTYPE 写成HTML5的<!DOCTYPE html>或者 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">时,代码如下:
<!DOCTYPE HTML>
<html>
    <head>
    </head>
    <body>
        <select>
            <option>选项...</option>
        </select>
        <br><br>
        <div style="width:200px;background-color: green;">
             
        </div>
        <div style="width:200px;background-color: red;">
            <input type='text' style='width:100%;'>
        </div>
    </body>
</html>

IE8显示效果:

这个时候下拉框变美了...文本框则超出....

这个问题找了一个上午,就在即将要放弃的时候。。终于在stackoverflow看到一哥们给出如下的解决方案:
input[type="text"] {
     width: 100%; 
     box-sizing: border-box;
     -webkit-box-sizing:border-box;
     -moz-box-sizing: border-box;
}
代码:
<!DOCTYPE HTML>
<html>
	<head>
	</head>
	<body>
		<select>
			<option>选项...</option>
		</select>
		<br><br>
		<div style="width:200px;background-color: green;">
			 
		</div>
		<div style="width:200px;background-color: red;"  >
			<!-- 刚开始没有加margin:0px; 后来把文本框放在td中显示有一点点瑕疵,所以加上了 -->
			<input type='text' style="margin: 0px;width: 100%;padding: 0px; box-sizing: border-box;-webkit-box-sizing:border-box;-moz-box-sizing: border-box;">
		</div>
	</div>
	</body>
</html>

IE8显示效果:


...感谢stackoverflow的pricco   大笑
HTML常用标签整理 <!-- h1-h6 -->     <h1>标题</h1>     <p>段落</p>     <!-- 列表 -->     <ul>         <li>列表项</li>         <li>列表项</li>         <li>列表项</li>     </ul>     <!-- 文本标签 -->     <strong>加粗</strong>     斜体字     <ins>下划线</ins>     <del>删除线</del>     <!-- 超链接 -->     <a href="#" target="_blank">超链接</a>     <!-- 图片 -->     <img src="第4章/hong.png" alt="">     <!-- 表格 -->     <table border="1">         <tr>             <td colspan="2">学号/姓名</td>             <td rowspan="2">性别/男</td>         </tr>         <tr>             <td>20230101</td>             <td>林志远</td>         </tr>     </table>     <!-- 水平线(单标签) -->     <hr>     <!-- 换行 -->     <br>     <!-- 表单 -->     <form action="#" method="post">         文本框:<input type="text"> <br>         密码框:<input type="password"> <br>         单选框:<input type="radio" name="sex">男 <br>         复选框:<input type="checkbox" name="hobby">爱好 <br>         文件上传:<input type="file"> <br>         日期选择:<input type="date"> <br>         颜色选择:<input type="color"> <br>         邮箱:<input type="email"> <br>         数字:<input type="number"> <br>         下拉菜单:         <select name="city">             <option value="">泉州市</option>             <option value="">厦门市</option>         </select>         <br>         <input type="submit" value="提交">         <input type="reset" value="重置">         <input type="button" value="普通按钮">     </form>     <!-- 结构标签(语义化标签) -->     <header>头部</header>     <nav>导航栏</nav>     <section>区块</section>     <article>文章</article>     <aside>侧边栏</aside>     <footer>底部</footer>     <!-- 盒子标签(块元素) -->     <div>盒子模型</div>     <!-- span (行内元素) -->     <span>span</span>
05-31
``` <%@ page language="java" import="test_package.*" import="java.util.*" import="java.sql.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <link rel = "stylesheet" href = "../style/account_set.css"> </head> <body> <% List<test_information> list=new ArrayList<>(); try{ Class.forName("com.mysql.cj.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/washcustomer"; String username="root"; String password="zqz20011222."; Connection c =DriverManager.getConnection(url,username,password); Statement s=c.createStatement(); String sql="select * from clothes"; ResultSet rs= s.executeQuery(sql); while(rs.next()) { String expected_time; if(rs.getString("expected_time").compareTo("点击选择时间")==0) { expected_time="未选择时间"; } else { expected_time=rs.getString("expected_time"); } test_information clothes=new test_information(rs.getString("material"),rs.getString("owner_tel"),rs.getString("start_time"),expected_time,rs.getInt("price"),rs.getString("washing_method"),rs.getString("clothes_state"),rs.getString("bill_state"),rs.getString("number")); list.add(clothes); } } catch(SQLException e) { e.printStackTrace(); System.out.println("操作失败"); } %> <tit >当前账套</tit> <input type = "button" value = "添加账套" onclick = "add_account.show()" class = "add_a"> <table border=1 class="t"> <tr> <th class = "name">单位名称</th><th class = "id">纳税人识别号</th><th class = "func">操作</th><th class = "func">删除</th></tr> <%for(test_information news:list) {%> <tr> <th class = "name"><%=news.getMaterial() %></th> <th class = "id"><%=news.getTel() %></th> <th class = "func"><form action = ""><input value = "<%=news.getTel() %>" type = "hidden"><input class="op" type = "submit" value ="进入账套"></form></th> <th class = "func"><form action = ""><input value = "<%=news.getTel() %>" type = "hidden"><input class = "op" type = "submit" value ="删除账套"></form></th> </tr> <%} %> </table> <dialog id ="add_account"> <form action = "" > <h1 class = "add_tit">添加账套</h1><br> <h1 class = "t1">单位名称</h1><input type = "text" class = "information" name = "name"><br> <h1 class = "t1">纳税人识别号</h1><input type = "text" class = "information" name = "id"><br> <h1 class = "t1">行业</h1><input type = "text" class = "information" name = "industry"><br> <h1 class = "t1">增值税种类</h1><select class = "select" name = "type"><option>小规模纳税人</option><option>一般纳税人</option></select><br> <h1 class = "t1">审核凭证</h1><select class = "select" name = "check"><option>审核</option><option>不审核</option></select><br> <input type = "submit" value = "新增账套"> <input type = "button" value = "清空" id = "clear"> <input type = "button" value = "返回" onclick = "add_account.close()"> </form> </dialog> <script> document.getElementById("clear").addEventListener("click", function () { var inputs = document.getElementsByClassName("information"); for (let i = 0; i < inputs.length; i++) { inputs[i].value = ""; // 文本框清空 } let selects = document.getElementsByTagName('select'); for(let j=0;j<selects.length ;j++){ selects[j].selectedIndex =0; // 恢复下拉列表至初始状态 } }); </script> </body> </html>```让遮罩在弹窗和主页面之间,关闭弹窗后遮罩也消失
03-15
<?php session_start(); include "Conn/conn.php"; include "page.php"; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>博文列表</title> <link rel="stylesheet" href="CSS/list.css"/> <link rel="stylesheet" href="CSS/index.css"/> </head> <body style=" background-color:#F1F2F6;"> <div class="banner"> <div class="nav"> <a class="left" href="index.php">博客系统</a> <div class="right"> <?php if(isset($_SESSION['username'])) { ?> <a class="a" href="./myinfo.php">个人中心</a> <a class='a' href='#'> | </a> <a class="a" href="./doAction.php?a=loginout">安全退出</a> <?php }else { ?> <a class='a' href='./login.php'>登录</a> <a class='a' href='#'> | </a> <a class='a' href='./Register.php'>注册</a> <?php } ?> </div> </div> </div> <div class="bgimg"></div> <!--大盒子--> <div id="big" style="margin-top: -50px;border-radius:5px;"> <!--列表开始--> <div id="list"> <div id="listbt"> <div id="bkname"> <h4>博文列表</h4> </div> <div id="bzname"> </div> </div> <div id="bkinfo"> <div id="bklogo"> <img src="images/PHP.png"/> </div> <div id="tjinfo"> </div> <div id="bkjianj"> </div> </div> <div id="biaotou"> <ul> <li class="tiezibt" style="width: 550px;"><a href="#">标题</a></li> <li><a href="#">作者</a></li> <li><a href="#">查看</a></li> <li><a href="#">发表时间</a></li> </ul> </div> <?php //分页 $sql="select id from tb_article "; $result=mysqli_query($link,$sql); //计算总条数 $rows = $result->num_rows; //调用分页函数 Page($rows,4); $sql = "select * from tb_article limit $select_from $select_limit"; $result=mysqli_query($link,$sql); //5 if($result && mysqli_num_rows($result)>0){ while($rows=mysqli_fetch_assoc($result)){ ?> <div id="listks"> <div class="invitationzt"> <div class="invitalogo"> </div> <div class="invitationbt"> <a href="#"><?php echo $rows['title']?></a> </div> <div class="custor"> <a href="#"><?php echo $rows['author']?></a> </div> <div class="reply"> <a href="./file_show.php?id=<?php echo $rows['id']?>">查看</a> </div> <div class="last"> <?php echo date("Y-m-d",$rows['time'])?> </div> </div> </div> <?php } } ?> <div id="page" style="text-align: center;"> <div id="pagefy" style="margin: 0 auto;"> <ul> <?php echo $pagenav;?> </ul> </div> </div> </div> <!--列表结束--> </div> <div id="clear"></div> <!--大盒子结束--> <!--页面尾开始--> <?php include "footer.php"; ?> <!--页面尾结束--> </body> </html>在该代码中,添加标题什么的信息,修改代码并输出
最新发布
06-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值