I want to create a box like this with title:

Can any one please let me know if there is a default CSS tag to do this? Or do I need to create my custom style?
I believe you are looking for the fieldset HTML tag, which you can then style with CSS. E.g.,
    
    <fieldset style="border: 1px black solid">
      <legend style="border: 1px black solid;margin-left: 1em; padding: 0.2em 0.8em ">title</legend>
      Text within the box <br />
      Etc
    </fieldset> 
    
     
    
    If you are not using it in forms, and instead want to use it in an non-editable form, you can do this via the following code -
.title_box {
  border: #3c5a86 1px dotted;
}
.title_box #title {
  position: relative;
  top: -0.5em;
  margin-left: 1em;
  display: inline;
  background-color: white;
}
.title_box #content {}<div class="title_box" id="bill_to">
  <div id="title">Bill To</div>
  <div id="content">
    Stuff goes here.<br> For example, a bill-to address
  </div>
</div> 
    
     
    
    from http://www.pixy.cz/blogg/clanky/css-fieldsetandlabels.html
fieldset {
  border: 1px solid green
}
legend {
  padding: 0.2em 0.5em;
  border: 1px solid green;
  color: green;
  font-size: 90%;
  text-align: right;
}<form>
  <fieldset>
    <legend>Subscription info</legend>
    <label for="name">Username:</label>
    <input type="text" name="name" id="name" />
    <br />
    <label for="mail">E-mail:</label>
    <input type="text" name="mail" id="mail" />
    <br />
    <label for="address">Address:</label>
    <input type="text" name="address" id="address" size="40" />
  </fieldset>
</form> 
    
     
    
    This will give you what you want
<head>
    <title></title>
    <style type="text/css">
        legend {border:solid 1px;}
    </style>
</head>
<body>
    <fieldset>
        <legend>Test</legend>
        <br /><br />
    </fieldset>
</body>
 
    
    As far as I know (correct me if I'm wrong!), there isn't.
I'd recommend you to use a div with a negative-margin-h1 inside. Depending on the semantic structure of your document, you could also use a fieldset (HTML) with one legend (HTML) inside which approximately looks like this by default.
 
    
    You can try this out.
<fieldset class="fldset-class">
    <legend class="legend-class">Your Personal Information</legend>
    <table>
        <tr>
            <td><label>Name</label></td>
            <td><input type='text' name='name'></td>
        </tr>
        <tr>
            <td><label>Address</label></td>
            <td><input type='text' name='Address'></td>
        </tr>
        <tr>
            <td><label>City</label></td>
            <td><input type='text' name='City'></td>
        </tr>
    </table>
</fieldset>
 
    
     
    
    I think this example can also be useful to someone:
.fldset-class {
    border: 1px solid #0099dd;
    margin: 3pt;
    border-top: 15px solid #0099dd
}
.legend-class {
    color: #0099dd;
}<fieldset class="fldset-class">
    <legend class="legend-class">Your Personal Information</legend>
    <table>
        <tr>
            <td><label>Name</label></td>
            <td><input type='text' name='name'></td>
        </tr>
        <tr>
            <td><label>Address</label></td>
            <td><input type='text' name='Address'></td>
        </tr>
        <tr>
            <td><label>City</label></td>
            <td><input type='text' name='City'></td>
        </tr>
    </table>
</fieldset>
` or `
` just to create an indented paragraph: (1) The element has specific meaning and that meaning is not about how it looks. (2) It isn’t guaranteed to be rendered that way, just because a majority of browsers currently render it that way. In other words, relying on a fieldset element to look a certain way may break in the future.
– VGR Jul 05 '22 at 13:00