w3resource

HTML-CSS: Input with prefix

HTML-CSS : Exercise-18 with Solution

Using HTML, CSS creates an input with a visual, non-editable prefix.

  • Use display: flex to create a container element.
  • Remove the border and outline from the <input> field. Apply them to the parent element instead to make it look like an input box.
  • Use the :focus-within pseudo-class selector to style the parent element accordingly, when the user interacts with the <input> field.

HTML Code:

<!--License: https://bit.ly/3GjrtVF-->
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>Using HTML, CSS creates an input with a visual, non-editable prefix.</title>
</head>
<body>
 <div class="input-box">
  <span class="prefix">+20</span>
  <input type="tel" placeholder="254 254 1111"/>
</div>
</body>
</html>

CSS Code:

<style> 
.input-box {
  display: flex;
  align-items: center;
  max-width: 300px;
  background: #CCC;
  border: 1px solid #a0a0a0;
  border-radius: 4px;
  padding-left: 0.5rem;
  overflow: hidden;
  font-family: sans-serif;
}

.input-box .prefix {
  font-weight: 300;
  font-size: 14px;
  color: #999;
}

.input-box input {
  flex-grow: 1;
  font-size: 14px;
  background: #fff;
  border: none;
  outline: none;
  padding: 0.5rem;
}

.input-box:focus-within {
  border-color: #777;
}
</style>

HTML-CSS Editor:

See the Pen html-css-practical-exercises by w3resource (@w3resource) on CodePen.


What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

Share this Tutorial / Exercise on : Facebook and Twitter

HTML-CSS: Tips of the Day

How to get CSS to select ID that begins with a string ?

[id^=product]

^= indicates "starts with". Conversely, $= indicates "ends with".

The symbols are actually borrowed from Regex syntax, where ^ and $ mean "start of string" and "end of string" respectively.

Ref: https://bit.ly/3rSZ2t7