css 当显示错误消息时,如何防止内容向下移动?

8dtrkrch  于 2022-12-01  发布在  其他
关注(0)|答案(2)|浏览(118)

在这段代码中,当输入为空时,你按下submit,弹出一个错误消息,但它按下了按钮,我试图阻止按钮被按下,我该怎么做呢?
此代码也可作为CodePen提供。
第一个
这是错误消息出现前后的垂直位移。添加了水平线以比较位置。

cmssoen2

cmssoen21#

.preventDefault()完成了它的工作,但是你应该把它放在if块中。在下面的代码片段中,表单只有在输入字段包含一些文本时才会被提交。
如果问题是由于插入错误消息而引起的微小垂直偏移,则可以通过使其始终可见并保持最小高度并相应地简单地更改其.textContent来避免这一问题。
第一个

wgx48brx

wgx48brx2#

visibility:hidden隐藏元素,但它仍会占用布局中的空间。display:none从文档中删除元素。

您可以在CSS中添加以下更改:

small {
  font-style: italic;
  color: red;
  text-align: right;
  width: 15em;
  visibility: hidden;
  height:10px;
  margin: 0;
}

.error small {
  visibility: visible;
}

以及JS中的以下变更

function addError(message) {
  const small = document.querySelector("small");
  small.classList.add("error");
  small.innerText = message;
  small.style.visibility= "visible";
}

相关问题