Having trouble aligning form in the center with Tailwindcss

Currently, I am working on a Rails 6 application and designing a form. My goal is to center the form in the middle of the page while utilizing TailwindCSS for styling. However, upon adding the 'with' property, instead of centering, the form shifts to the right of the page.

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

Below is how the form appears:

<div class="max-w-full">
  <%= form_for @post do |f| %>
    <div class="md:flex md:items-center mb-6">
      <div class="md:w-1/3">
        <label class="block text-gray-500 font-bold md:text-right mb-1 md:mb-0 pr-4" for="inline-full-name">
            <%= f.label :title, 'Title:' %>
        </label>
      </div>
      <div class="md:w-2/3">
        <%= f.text_field :title, class: "bg-gray-200 appearance-none border-2 border-gray-200 rounded w-full py-2 px-4 text-gray-700 leading-tight focus:outline-none focus:bg-white focus:border-purple-500" %>
      </div>
    </div>

    // More form elements...

     <div class="md:flex md:items-center">
       <div class="md:w-1/3"></div>
       <div class="md:w-2/3">
         <%= f.submit "Create", class: "shadow bg-purple-500 hover:bg-purple-400 focus:shadow-outline focus:outline-none text-white font-bold py-2 px-4 rounded" %>
       </div>
     </div>
   <% end %>
</div>

Can anybody provide any solutions or suggestions?

Answer №1

<div class="md:flex md:items-center mb-6">

Perhaps it would be better like this:

<div class="md:flex md:justify-center mb-6">

Remember, you are working with a row layout, not a column layout, so use justify-center to center items rather than items-center (for flex-col).

Answer №2

If you omit the h-screen class, the items-center won't function properly. Therefore, any 'div' element that needs to be centered in your scenario should also have this:

<div class="md:flex md:h-screen md:items-center mb-6">

Answer №3

Uncertain, but worth a shot. Give this one a try and see if it works for you.

<div class="max-w-full">
      <%= form_for @post do |f| %>
        <center>
          <div class="md:flex md:items-center mb-6">
          <div class="md:w-1/3">
            <label class="block text-gray-500 font-bold md:text-right mb-1 md:mb-0 pr-4" for="inline-full-name">
                <%= f.label :title, 'Title:' %>
            </label>
          </div>
          <div class="md:w-2/3">
            <%= f.text_field :title, class: "bg-gray-200 appearance-none border-2 border-gray-200 rounded w-full py-2 px-4 text-gray-700 leading-tight focus:outline-none focus:bg-white focus:border-purple-500" %>
          </div>
        </div>
    
        <div class="md:flex md:items-center mb-6">
          <div class="md:w-1/3">
            <label class="block text-gray-500 font-bold md:text-right mb-1 md:mb-0 pr-4" for="inline-full-name">
                <%= f.label :description, 'Description:' %>
            </label>
          </div>
          <div class="md:w-2/3">
            <%= f.text_area :description, class: "bg-gray-200 appearance-none border-2 border-gray-200 rounded w-full py-2 px-4 text-gray-700 leading-tight focus:outline-none focus:bg-white focus:border-purple-500" %>
          </div>
        </div>
    
        <div class="md:flex md:items-center mb-6">
          <div class="md:w-1/3">
            <label class="block text-gray-500 font-bold md:text-right mb-1 md:mb-0 pr-4" for="inline-full-name">
                <%= f.label :location, 'Location:' %>
            </label>
          </div>
          <div class="md:w-2/3">
            <%= f.text_field :location, class: "bg-gray-200 appearance-none border-2 border-gray-200 rounded w-full py-2 px-4 text-gray-700 leading-tight focus:outline-none focus:bg-white focus:border-purple-500" %>
          </div>
        </div>
    
        <div class="md:flex md:items-center mb-6 upload-btn-wrapper">
          <div class="md:w-1/3">
            <label class="block text-gray-500 font-bold md:text-right mb-1 md:mb-0 pr-4" for="inline-full-name">
                <%= f.label :image, 'Image:' %>
            </label>
          </div>
          <div class="md:w-2/3" id="file-upload">
            <svg xmlns="http://www.w3.org/2000/svg" class="fill-current text-teal-500 inline-block h-12 w-12" viewBox="0 0 22 22"><path d="M19 7v2.99s-1.99.01-2 0V7h-3s.01-1.99 0-2h3V2h2v3h3v2h-3zm-3 4V8h-3V5H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-8h-3zM5 19l3-4 2 3 3-4 4 5H5z"/><path d="M0 0h24v24H0z" fill="none"/></svg>
            <%= f.file_field :image, as: :file %>
          </div>
        </div>
        </center>
    
         <div class="md:flex md:items-center">
           <div class="md:w-1/3"></div>
           <div class="md:w-2/3">
             <%= f.submit "Create", class: "shadow bg-purple-500 hover:bg-purple-400 focus:shadow-outline focus:outline-none text-white font-bold py-2 px-4 rounded" %>
           </div>
         </div>
       <% end %>
    </div>

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

Utilizing Z-Index on DropDownTree has no impact on its display

Whenever the DropDownTree is placed near other expanding controls such as standard date pickers, it causes those controls to appear behind the DropDownTree. I have attempted various solutions including using inline style, setting z-index for .RadDropDownTr ...

Surprising pause in the menu transition animation

Currently, I am in the process of developing a menu that seems to have some flaws. One issue is that it appears a bit choppy, but the more concerning problem is the half-second delay after clicking an item before it animates. The concept behind this menu ...

Display a Loading Indicator within a Bootstrap 4 Modal Dialog

I have a question regarding Bootstrap 4 and a simple trick I am trying to implement. I am looking to display a Loading indicator similar to Twitter every time the user opens the modal. I have some code that is working well, but I seem to have misplaced som ...

additional space within bootstrap columns

I'm looking to eliminate the empty space above the 4th span and replace it with the next span. Edit: Without adding a new row. Here's the fiddle: http://jsfiddle.net/Dzh5E/7/ <div class="main-app"> <div class="row-fluid"> ...

Creating a dynamic visual effect with image overlap in the Sencha Touch carousel

I've created a carousel that loads multiple images, but I'm experiencing an issue where each image is overlapping with another image from a different card. Here's a visual of the problem: As shown in the screenshot, parts of one image are a ...

Angular 9: Missing sort icon in Kendo grid

I've encountered an issue with my project developed in Angular 9 and utilizing the latest version of the Kendo grid. While both sorting and resizing columns are enabled within the grid, everything functions properly when accessing the application loca ...

Does anyone know of a JavaScript function that works similarly to clientX and clientY but for tooltips when the mouse moves?

When using plain JavaScript to create a function that moves a tooltip on mouse move, the function works the first time with clientX and clientY, but fails to work when repeated. What could be causing this issue with clientX and clientY? Any suggestions on ...

Issues with jQuery slider's fadeIn and fadeOut functionalities are causing unexpected behavior

A question surfaced when implementing a jQuery slider with the help of another user on this website. The issue arose when transitioning the code from the working fiddle to my computer, resulting in a problem that needs addressing. Here is the original fidd ...

Is the ID selector the quickest method in jQuery and CSS?

Which is the optimal choice in jQuery/javascript for speed? $('#myID .myClass') or $('.myClass') What is the preferred option to utilize in CSS? #myID .myClass{} or .myClass{} In hindsight, I realize my explanation was insuffici ...

Creating a top-to-bottom pull effect on a single page, similar to the Android title bar, can be achieved using CSS3

Is there a way to achieve an effect in HTML that resembles the pull title bar animation from top to bottom in Android? Any suggestions on how to create this effect or what tools I would need? Currently, when I swipe, the page simply displays a following ...

Offset the content from the border within a container that includes a scrollbar

The containing element has some content that is set to have a fixed height and overflow: auto; as shown in the JSFiddle link provided. When scrolling through the text, you will notice that the border comes into contact with the text both above and below. ...

Adjusting the size of images in real time

Currently, I am in the process of creating a Fluid grid style website and I am looking to decrease the size of all images by 75% when the screen is below 1280px, 50% at 800px, and so forth. Is there a way to achieve this using the IMG tag? My attempt so ...

Pulling colors from a JSON file does not function properly within the Tailwind framework

I'm currently working on a React project that involves fetching data from a server and then displaying it. An interesting challenge I encountered is setting the colors based on the json data using Tailwind CSS: ... const bgcolor = `bg-[${card.color}]` ...

Allow only the modals that do not have a particular parent class to be dragged

I am currently working on making all the modals draggable on my website. However, there are certain modals with a class of .fullscreen that I do not want to be draggable. The issue I'm facing is that I can't figure out how to exclude the modals ...

`Arrange Buttons Horizontally in Bootstrap`

I've been struggling to align my two bootstrap buttons next to each other horizontally, instead of on top of one another vertically. Despite researching and trying various suggestions, I still can't seem to get it to work... Below is the code I ...

Setting a Minimum Height in Bootstrap for a Div

I am currently working on designing a page with a banner using bootstrap. The image, which has the id "mybanner," is generated dynamically from the code. This means that there are occasions where the image element may not exist within my code. To ensure co ...

The content div in CSS is causing the menu div to be displaced

I have encountered a difficulty in describing the issue at hand as I am still in the learning phase and consider myself a beginner. Within my container div, there are two other divs - one for the menu and another for the content. Both of these divs float ...

Align the asp.net content generated towards the left side

I am looking to optimize the layout of my asp.net code by shifting the content on all pages to the left side of the screen for better efficiency. Despite my efforts, I have been unable to find a suitable CSS solution that works universally across all view ...

Steps for implementing a click event on the <select> element

Exploring Angular 2 and TypeScript Is there a way to use (click)="functionA()" within an <option> tag? I've tried the following code but it doesn't seem to work. <select class="form-control"> <option>1</option> ...

What happens when CSS min-height is set to 100% and there are fixed elements on the screen as well

I've been grappling with the min-height:100% CSS property in an attempt to make my content area reach the remaining % of the screen, but it's proving to be quite challenging. Any guidance you can provide will be highly valued. On my page, I have ...