html - 更改宽度时如何保持边框的一侧为正方形?

标签 html css

我想更改 css 中的 border-left 属性,但它并没有像我预期的那样给我一个漂亮的矩形。

<!DOCTYPE html>
<html>
<head>
<style> 
input[type=text] {
    width: 100%;
    padding: 12px 20px;
    margin: 8px 0;
    box-sizing: border-box;
    border: 1px solid black;
    border-left: 100px solid red;
}
</style>
</head>
<body>

<p>Text field with only a left border:</p>

<form>
  <label for="fname">First Name</label>
  <input type="text" id="fname" name="fname">
</form>

</body>
</html>

运行这段代码,可以看到红框内没有完美的直线。

你们知道这个问题的解决方案吗?

谢谢!

最佳答案

增加左内边距并使用内嵌 box-shadow

input[type=text] {
  width: 100%;
  padding: 12px 20px;
  padding-left: 120px;
  margin: 8px 0;
  box-sizing: border-box;
  border: 1px solid black;
  box-shadow: inset 100px 0 0 0 red;
}
<form>
  <label for="fname">First Name</label>
  <input type="text" id="fname" name="fname">
</form>

关于html - 更改宽度时如何保持边框的一侧为正方形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46931321/

相关文章:

html - 在无表格网页设计中对齐 div 时出现问题

html - 字体大小增加上边距

css - 响应字体不起作用

html - 在 table 上设置最大高度

php - 如何使用 PHP 下载并删除我网站上的文件?

javascript - 按钮内的文本不像按钮的一部分?

php - 自定义验证消息不起作用?

html - 如何拉伸(stretch)表格以填充所有可用空间

html - 使点 float 在表头上

css - JS/jQuery : Dynamically add x pixels to the height of a div with inline style