-2

we would like to center an html component.

The situation now:

enter image description here

.card{
    width: 400px;
    border: 3px solid #54722b; 
    left: 0;
    right: 0;
    margin: auto;
    margin-top: 20px;
}
.card-header{
    background-color: rgb(221, 211, 123); 
}
.card-header h3{
     color: white;   
}
<div class="card">
    <div class="card-header">
        <h3>Title</h3>
    </div>

    <div class="card-body">
        <div class="form-group">
            <form (ngSubmit)="register()">
                <div class="input-group form-group">
                    <input  name="name1" class="form-control">  
                </div>
                <div class="input-group form-group">
                    <input name="name2" class="form-control">
                </div>
                <div class="input-group form-group">
                    <input  name="name3" class="form-control">
                </div>
                <div class="input-group form-group">
                    <input  name="name4" class="form-control">
                </div>
                <div class="input-group form-group">
                    <input name="name5" class="form-control">
                </div>
                <div class="input-group form-group">
                    <input  name="name6" class="form-control">
                </div>
            </form>
        </div>
    </div>
</div>

We tried: (but it didn't work)

To add to the .card in the css file, the line:

position: fixed;

This line of code centered the component, but when we zoomed in, it was not possible to scroll the screen and see the entire component.

How to center the html component, so that after zooming in, it will be possible to scroll the screen?

Omri Attiya
  • 3,917
  • 3
  • 19
  • 35
Mana
  • 63
  • 1
  • 9
  • 1
    It does works in the snippet.. – Omri Attiya Apr 01 '21 at 16:56
  • 1
    It's possible that it's centered within its container but the container isn't the full width of the viewport. – ray Apr 01 '21 at 16:58
  • Does this answer your question? [How to center a fixed element?](https://stackoverflow.com/questions/15037826/how-to-center-a-fixed-element) – Masood Apr 01 '21 at 17:10

6 Answers6

0

You can try these codes.

See to big screen: https://codepen.io/en0ndev/pen/bGgqpPm

body {
  height:5000px;
}

.card_main {
  position:fixed;
  left:0;
  right:0;
  top:50%;
  transform:translateY(-50%);
}

.card{
    width: 400px;
    border: 3px solid #54722b; 
    left: 0;
    right: 0;
    margin: auto;
    margin-top: 20px;
}
.card-header{
    background-color: rgb(221, 211, 123); 
}
.card-header h3{
     color: white;   
}
<body>

<div class="card_main">

<div class="card">
    <div class="card-header">
        <h3>Title</h3>
    </div>

    <div class="card-body">
        <div class="form-group">
            <form (ngSubmit)="register()">
                <div class="input-group form-group">
                    <input  name="name1" class="form-control">  
                </div>
                <div class="input-group form-group">
                    <input name="name2" class="form-control">
                </div>
                <div class="input-group form-group">
                    <input  name="name3" class="form-control">
                </div>
                <div class="input-group form-group">
                    <input  name="name4" class="form-control">
                </div>
                <div class="input-group form-group">
                    <input name="name5" class="form-control">
                </div>
                <div class="input-group form-group">
                    <input  name="name6" class="form-control">
                </div>
            </form>
        </div>
    </div>
</div>
  
</div>
  
</body>
en0ndev
  • 673
  • 1
  • 7
  • 19
0

.card{
    width: 400px;
    border: 3px solid #54722b; 
    left: 0;
    right: 0;
    margin: auto;
    margin-top: 20px;
    display: flex;
    justify-content: center;
}
.card-header{
    background-color: rgb(221, 211, 123); 
}
.card-header h3{
     color: white;   
}
<div class="card">
    <div class="card-header">
        <h3>Title</h3>
    </div>

    <div class="card-body">
        <div class="form-group">
            <form (ngSubmit)="register()">
                <div class="input-group form-group">
                    <input  name="name1" class="form-control">  
                </div>
                <div class="input-group form-group">
                    <input name="name2" class="form-control">
                </div>
                <div class="input-group form-group">
                    <input  name="name3" class="form-control">
                </div>
                <div class="input-group form-group">
                    <input  name="name4" class="form-control">
                </div>
                <div class="input-group form-group">
                    <input name="name5" class="form-control">
                </div>
                <div class="input-group form-group">
                    <input  name="name6" class="form-control">
                </div>
            </form>
        </div>
    </div>
</div>

Is this what you are trying to achieve?

Anmol Bhardwaj
  • 636
  • 6
  • 18
0

body {
  display:grid;
  justify-content:center; 
}

.card{
    width: 400px;
    border: 3px solid #54722b; 
    margin-top: 20px;
}
.card-header{
    background-color: rgb(221, 211, 123); 
}
.card-header h3{
     color: white;   
}
<div class="card">
    <div class="card-header">
        <h3>Title</h3>
    </div>

    <div class="card-body">
        <div class="form-group">
            <form (ngSubmit)="register()">
                <div class="input-group form-group">
                    <input  name="name1" class="form-control">  
                </div>
                <div class="input-group form-group">
                    <input name="name2" class="form-control">
                </div>
                <div class="input-group form-group">
                    <input  name="name3" class="form-control">
                </div>
                <div class="input-group form-group">
                    <input  name="name4" class="form-control">
                </div>
                <div class="input-group form-group">
                    <input name="name5" class="form-control">
                </div>
                <div class="input-group form-group">
                    <input  name="name6" class="form-control">
                </div>
            </form>
        </div>
    </div>
</div>
Martin Klestil
  • 574
  • 1
  • 4
  • 15
0

Use FlexBox styling:

display: flex property. Once the container is flex container you can align the content centrally using

align-content: center // along the cross axis, other possible values flex-start, flex-end

justify-content: center //along the main axis

.card {
  display: flex;
  align-items: center;
  justify-content: center;
}
0

The issue might be on the parent container of .card. You have a margin of auto, which should center the div inside the parent div. Check the margins with inspector to see which container is causing the issue.

mat335
  • 48
  • 8
-5

Add margin:0 auto to css for .card Or use center tags

Hakan Turkmen
  • 119
  • 1
  • 6