自定义输入文本框的内置标题栏边框

时间:2019-11-28 09:50:59

标签: html css angular typescript

输入文本框中标题的轮廓颜色在Google chrome中的显示方式有所不同。底部边界线看起来有所不同。

<input type="text" title="Please fill out this field.">

enter image description here

所以我尝试了以下代码:

<span class="pseudo-tooltip-wrapper" data-title="please fill out this field...">
<input type='text' required></span>

sample.css

[data-title]:hover:after {
    opacity: 1;
    transition: all 0.1s ease 0.5s;
    visibility: visible;
}

[data-title]:after {
    content: attr(data-title);
    background-color: rgb(217, 235, 217);
    color: #111;
    font-size: 150%;
    position: absolute;
    padding: 1px 5px 2px 5px;
    bottom: -1.6em;
    left: 100%;
    white-space: nowrap;
    /* box-shadow: 1px 1px 3px #222222; */
    opacity: 0;
    border: 1px solid #111111;
    z-index: 99999;
    visibility: hidden;
}

[data-title] {
    position: relative;
}

.pseudo-tooltip-wrapper {
    /*This causes the wrapping element to be the same size as what it contains.*/
    display: inline-block;
}

所以现在显示如下。当我根据需要设置字段时,将显示默认标题栏。

代替这种方法,我们可以修复默认的标题栏边框。

enter image description here

请在stackbliz中找到代码:https://stackblitz.com/edit/angular-pa2lnu

如何解决此问题。

2 个答案:

答案 0 :(得分:0)

您可以使用角形材料输入表单字段,它们更简单,全面且具有装饰性。我知道你是否找到 [此链接](https://material.angular.io/components/form-field/overview)有用

答案 1 :(得分:0)

您可以创建自定义工具提示处理程序。瞧,我使用tooltiptooltiptext类来显示自定义标题。

Stackblitz here

  

HTML

Hover over me 
  <br/>
  <br/>
<div class="tooltip">
  <span class="tooltiptext">Required field</span>
  <input  title="Please fill" type="text" />
</div>
  

CSS

 .tooltip {
  position: relative;
  display: inline-block;
  border-bottom: 1px dotted black;
}

.tooltip .tooltiptext {
  visibility: hidden;
  width: 120px;
  background-color: #555;
  color: #fff;
  text-align: center;
  border-radius: 6px;
  padding: 5px 0;
  position: absolute;
  z-index: 1;
  bottom: 125%;
  left: 50%;
  margin-left: -60px;
  opacity: 0;
  transition: opacity 0.3s;
}

.tooltip .tooltiptext::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: #555 transparent transparent transparent;
}

.tooltip:hover .tooltiptext {
  visibility: visible;
  opacity: 1;
}