How to Align Content in a Bootstrap 4 Container

After spending the last couple of hours experimenting with different combinations, I am still unable to get this simple aspect right. I am working with Bootstrap 4 and struggling to align an image and login dialog below it.https://i.sstatic.net/spZOM.png

I tried using the basic boilerplate code from Bootstrap 4 and attempted alignment using

Below is my HTML file.

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    <link rel="stylesheet" href="css/custom.css">

    <title>Hey - A group chat messenger!</title>
  </head>
  <body>
        <div class="container-fluid">
            <div class="row justify-content-center">
                    <div class="col-4">
                        <img src="hey_logo.png" id="logo" class="img-fluid">
                    </div>
            </div>
            <div class="row justify-content-center">
                <div class="col-4">
                    <button type="submit" class="btn btn-primary">Login with Google</button>
                </div>
            </div>
            <div class="row justify-content-center">
                <div class="col-4">
                    <small id="subtextMessage" class="form-text text-muted">Say Hey! to new beginnings</small>                    
                </div>
            </div>
        </div>


    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="89f9e6f9f9ecfba7e3fac9b8a7b8bfa7b9">[email protected]</a>/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>    
    </script>

</body>
</html>

Thank you, Pavan.

Answer №1

To tackle the issue mentioned above, a practical solution involves creating distinct rows with centered content for each element (such as image, button, text) within a column.

Check out the effective code snippet below:

<!doctype html>
<html lang="en">
  <head>
    <!-- Essential meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    <link rel="stylesheet" href="css/custom.css">

    <title>Greetings - A social network platform!</title>
  </head>
  <body>
        <div class="container-fluid">
            <div class="row justify-content-center">
                <div class="col-sm-3">
                    <div class="row justify-content-md-center">
                        <img src="/greetings-logo.png" id="logo" class="img-fluid">
                    </div>
                    <div class="row justify-content-md-center">
                        <button type="submit" class="btn btn-primary">Join with Facebook</button>
                    </div>                        
                    <div class="row justify-content-md-center">
                        <small id="subtextMessage" class="form-text text-muted">Spread Smiles Everyday!</small>                    
                    </div>                        
                </div>
            </div>
        </div>

    <!-- Scripts: jQuery, Popper.js, Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="92c2ddd2d2c7d0eed733a510bfbdb0bda5bb">[email protected]</a>/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>    
    </script>

</body>
</html>

Here's the resulting display:

https://i.sstatic.net/xyz123.png

Answer №2

In Bootstrap, a button is considered an inline-block element. To center the text within the button, you can use the text-center class.

<div class="row">
  <div class="col-4 text-center">
    <button type="submit" class="btn btn-primary">Login with Google</button>
  </div>
</div>

If the alignment does not look right (such as if the image is not symmetrical), consider adding padding to the left or right side of the col-4 element.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Animate horizontal scrolling with jQuery when the user scrolls the mouse

I've been experimenting with an animated horizontal offset for a div element triggered by the mousescroll event. You can check out my progress so far by following this link - could someone please take a look and help me identify any issues? Currently ...

Is it possible to modify the font size of all text that shares a particular font size?

Lately, I've been pondering on a question. A few years ago, I created a website using regular CSS and now I want to make some changes to the font sizes. While I know that CSS variables are the recommended solution for this situation, I'm curious ...

Webpack Encore: SCSS import order causing unexpected issues

When developing with Symfony + Webpack Encore, I aim to split styles into "layout" and "page-based" categories for convenience. However, despite this organization, I still prefer to compile all styles into a single CSS file. To achieve this, I structure my ...

How do I make the YouTube Grid Gallery player show up in a pop-up window?

I have been experimenting with the following code: <head> <script type="text/javascript" src="http://swfobject.googlecode.com/svn/trunk/swfobject/swfobject.js"></script> <script type="text/javascript"> function loadVideo(playerUrl, ...

css: labeling printed pages in Chrome

I need to make sure my project works on Chrome since I am using electron, so using any other browser is not an option. After searching for a solution to this issue without success, I attempted the following approach (taken from CSS page x of y for @media ...

Tablet-friendly dropdown menu

Seeking advice on implementing @media queries for tablets with a width of 991px. Currently, the CSS file is optimized for mobile devices but needs adjustments for tablet responsiveness in the dropdown menu. I attempted the following CSS code: @media (max ...

Flexbox wrap allows you to determine which child element will move to the next line

Is there a way to control which child element in flexbox drops to the next line, instead of just the last one every time? For example: Full-size, no breaking: https://i.sstatic.net/proUB.png Default behavior, breaking the last element: https://i.sstatic.n ...

Trouble with applying the CSS property filter: invert(80%) on Internet Explorer due to compatibility

Below is a div container: HTML: <div></div> CSS: div { border: 1px solid blue; height: 150px; width: 250px; background-color: blue; -webkit-filter: invert(50%); -moz-filter: invert(50%); -o-filter: invert(50%); ...

Is there a way to adjust the positioning of this dialog element?

I'm having trouble repositioning and resizing a dialog box. I attempted to use the style tag, but it didn't have any effect. I want to permanently move it to a specific location. The dialog box always opens in the same position, but I need to ch ...

How to incorporate Django syntax into CSS styling

Imagine a scenario where a Django site is equipped with numerous stylesheets. CSS and JS files are located in the static/ directory within an app's folder or in the global site directory. Various color themes are employed across different pages, neces ...

Images not showing in Vue.js

I have been working on setting up a carousel using bootstrap-vue. It is being generated dynamically through an array containing three objects with keys such as id, caption, text, and image path. The issue I am facing now is that while the caption and text ...

Issues with Hamburger menu hover effect in CSS

I am trying to set the background color of my hamburger menu to black. However, I am facing an issue with the CSS :after and :before classes. When I hover over them, they change color one by one instead of all three lines changing together. How can I make ...

"Reduce the height of the navigation bar when the user scrolls down the webpage

I am having an issue with my fixed navigation bar created using bootstrap 4. I want to reduce the height of the navbar as I scroll down the page, but it does not seem to be working. Here is a link to a video showing the problem in action: Link to the vide ...

Booking form pop-up appearing beneath the section

Currently, I am in the process of adding a booking form to the main page of . However, I seem to be encountering an issue where a popup appears below the section it is supposed to open within when selecting the number of persons. Despite adjusting the z ...

Creating a versatile button that adjusts seamlessly across different screen sizes, from smartphones to larger

I need assistance with a straightforward task - creating a button that remains centered at all times. What would be the most effective method to achieve this, and is it possible to do so easily? Currently, I have managed to create a blue button; however, ...

The arrangement of elements in an inline-block is determined by the width of the section

I have been attempting to replicate the layout shown in the image for quite some time. The elements (.element) are aligned vertically but they are not centered, instead they stick to the left side. My current code is as follows: HTML: <div id="_tec ...

Multiline text that appears inline

Is there a way to achieve this output in HTML or using CSS? This is the text: A very long piece of content that wraps automatically onto multiple lines Take note of how the text wraps and aligns on the left side. I am aware that tables can be used for t ...

Colorful background visuals without any text

Can you achieve a background color effect using Stylus without any text? span { width: 5px; height: 5px; } span.red { background-color: #f00; } <span class="red"></span> ...

Can anyone suggest a way to change the orientation of mapped items from column to row?

In my React app, I am creating a keyboard using the following component: Keypad.js const Keypad = () => { const letters = [ 'Q', 'W', 'E', 'R', 'T', ...

Tips for repositioning the navbar toggle button and logo to the left using Bootstrap

Is there a way to relocate the navbar toggle button and logo to the left side of the page using Bootstrap?https://i.sstatic.net/4gKRl.png ...