@media can be used to apply part of a style sheet based on the result of one or more media queries . With it, you specify a media query and a block of CSS to apply to the document if and only if the media query matches the device on which the content is being used.
@media not|only mediatype and (expressions) {
  css-code;
}
You can use an external style sheet based on media query.
<link rel="stylesheet" media="mediatype and|not|only (expressions)" href="style.css">
Media Types
Media features
Max-width
<div class="row">
    <div class="col-4">
        <h4>Screen with Max width</h4>
        <div>max-width: 600x</div>
    </div>
    <div class="col-8" id="maxWidth">
        max width
    </div>
</div>
<style>
            @media screen and (max-width: 600px) {
                #maxWidth {
                    background-color: lavender;
                }
            }
</style>
Min-width
<div class="row">
    <div class="col-4">
        <h4>Screen with Min width</h4>
        <div>min-width: 601px</div>
    </div>
    <div class="col-8" id="minWidth">
        min width
    </div>
</div> 
<style>
            @media screen and (min-width: 601px) {
                #minWidth {
                    background-color: yellow;
                }
            }
</style>
Min-width and max-width
<div class="row">
    <div class="col-4">
        <h4>Screen with Min to Max width</h4>
        <div>min-width: 600px to min-width: 800px</div>
    </div>
    <div class="col-8" id="mintomaxWidth">
        min to max width
    </div>
</div>
<style>
            @media screen and (max-width: 900px) and (min-width: 600px)   {
                #mintomaxWidth {
                    background-color: lightblue;
                }
            }
</style>
Min-width or max-width
<div class="row">
    <div class="col-4">
        <h4>Media query with or</h4>
    </div>
    <div class="col-8" id="mediaWithOr">
        media query with or
    </div>
</div>
<style>
            /* use , for or */
            @media screen and (max-width: 800px), screen and (min-width: 600px)   {
                #mediaWithOr {
                    background-color: greenyellow;
                }
            }
</style>
Orientation
<div class="row">
    <div class="col-4">
        <h4>Orientation Portrait</h4>
    </div>
    <div class="col-8" id="portrait">
        portrait
    </div>
</div>
<br>
<div class="row">
    <div class="col-4">
        <h4>Orientation Landscape</h4>
    </div>
    <div class="col-8" id="landscape">
        landscape
    </div>
</div>
         <style>
            @media screen and (orientation: landscape) {
                #landscape {
                    background-color: purple;
                }
            }
            @media screen and (orientation: portrait) {
                #portrait {
                    background-color: lightblue;
                }
            }
        </style>
<div class="row">
    <div class="col-4">
        <h4>Print</h4>
    </div>
    <div class="col-8" id="print">
        print
    </div>
</div> 
         <style>
             @media print {
                #print {
                    color: blue;
                    font-size: xx-large;
                    font-weight: bold;
                }
            }
            
        </style>