<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<!------ Include the above in your HEAD tag ---------->
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<!------ Include the above in your HEAD tag ---------->
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<!------ Include the above in your HEAD tag ---------->
<!DOCTYPE html>
<html lang="en">
<head>
<title>HTML</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css?family=Roboto:400,500,700" rel="stylesheet">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<!--[if IE]> <link href="~/Content/NewHomePage/all-ie-only.css" rel="stylesheet" /> <![endif]-->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<!--
This is a part of my blog post
https://codepen.io/ThiemelJiri/post/3-css-border-in-corners-techniques
-->
<h1 class="sample-heading">
<span class="heading">Sample heading</span>
</h1>
<h2 class="sample-heading explanation">
<span class="heading">Explanation</span>
</h2>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="custom.js"></script>
</body>
</html>
.sample-heading {
padding: 1em;
border: 0.25em solid;
position: relative;
&::before, &::after {
content: '';
display: block;
position: absolute;
background: #fff;
}
&::before {
top: -0.3em; // let it overlap a bit to prevent thin line which could appear during scaling in some browsers etc.
bottom: -0.3em;
left: 1em;
right: 1em;
}
&::after{
left: -0.3em;
right: -0.3em;
top: 1em;
bottom: 1em;
}
// you need this to move the text in front of the ::after overlay
.heading {
position: relative;
z-index: 1;
}
}
///////////////////////////
// Presentation only //
///////////////////////////
body {
min-height: 100vh;
display: flex;
flex-flow: column nowrap;
justify-content: center;
align-items: center;
}
.sample-heading.explanation {
&::before, &::after {
background: rgba(#f0f, .5);
}
}