Vertical Alignment my items?CSS+BOOTSTRAP - html

I have this site:
http://avocat2.dac-proiect.ro/?page_id=17
This is code HTML:
<div class="container-fluid">
<p class="text-center" style="color:white">Hello World!</p>
<p class="text-center" style="color:white">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.<br>
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequa</p>
<div class="row">
<div class="col-sm-4 col-md-4 col-lg-4" style="">
<p><img src="wp-content/themes/WordPressBootstrap-master/images/b1.jpg" class="img-responsive center-block" alt="Cinque Terre">
</p></div>
<div class="col-sm-4 col-md-4 col-lg-4" style="">
<img src="wp-content/themes/WordPressBootstrap-master/images/b2.jpg" class="img-responsive center-block" alt="Cinque Terre">
</div>
<div class="col-sm-4 col-md-4 col-lg-4" style="">
<img src="wp-content/themes/WordPressBootstrap-master/images/b3.jpg" class="img-responsive center-block" alt="Cinque Terre">
</div>
<p></p></div>
</div>
I want this item to be aligned vertically at the center, for all resolutions.
Currently the resolution looks like:
http://i61.tinypic.com/2wh4e4g.jpg
This is code CSS:
.entry-content2
{
background:url("http://avocat2.dac-proiect.ro/wp-content/themes/WordPressBootstrap-master/images/BODY-DROP.png");
width:100%;
height: 100vh;
}
How can I solve this problem?
I tried several options but unfortunately looks different in several resolutions.
Thanks in advance!

Let's use flex box for this!
.container-fluid{
height: 100vh;
display:flex;
align-items:center;
justify-content:center;
}
Here I used the viewport vertical unit to make the container be the frame size.
Then I make the display to be flex, and some flex-ish centering.
But, do not forget to add a div inside .container-fluid, like this:
<div class="container-fluid">
<div class="hola">
...(rest of content)
</div>
</div>
Call it whatever you like and style however you want that div, as you'd avoid a centering mess due to flex box only affecting the father div.

Related

How do you put two card classes side by side WITHOUT CSS

Hi Im relatively new to html and need some help
Im coding my profile on a site where CSS is a premium option so I can only use html
I keep running in to the same problem where I can't display two card classes (both of which I use for an info box on my profile) side by side
I'm always able to get the first one exactly where I want it but the second one gets stuck underneath and I want them aligned horizontally
Any pointers?
It always ends up looking something like this
<div class="container m-3 p-3" style="background-color: black; max-width: 950px; border-radius: 5px;">
<div class="container m-3 p-3" style="background: url('BG_IMG'); background-size: cover; #292929; max-width: 885px; border-radius: 5px;"
<div class="p-2 col-sm-4">
<center><img src="IMG_LINK"max-width: 200px; border-radius: 5px"></center>
<div class="card p-2 my-3 text-center">
<h1 class="m-0"><b>NAME</b></h1>
<p><b>SUBTITLE</b></p>
</div>
<div class="col-sm-8">
<div class="card">
<h class="m-3" style="height: auto; text-indent: 20px;"></h4>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
</div>
</div>
<div class="col">
<div class="p-2 col-sm-4">
<div class= "p-2 card">
<h3 class="m-1 text-center">INTERESTS</h3>
<hr class="w-75 my-1" style="background: light; height: 1px;">
<div class="mx-n1 text-center my-auto">
<p class="m-1">CONTENT</p>
<hr class="w-75 my-2" style="background: light; height: 1px;">
<p class="m-1">CONTENT</p>
<hr class="w-75 my-1" style="background: light; height: 1px;">
<p class="m-1">CONENT</p>
<hr class="w-75 my-1" style="background: light; height: 1px">
<p class="m-1">CONTENT</p>
<hr class="w-75 my-1" style="background: light; height: 1px;">
<p class="m-1">CONTENT</p>
</div>
</div>
</div>
</div>
</div>
</div>
A couple of things:
A good thing to do in general is to proof read your code thoroughly, especially if something isn't working. It's annoying to do by hand, that's why I'd recommend using a text editor that does it for you. I personally use VS-code with Prettier for formatting, I'd start there if you don't have your own specific preferences. That's how I directly found a dozen syntax errors. Then if you want, you can just copy-paste it wherever after correcting the errors.
I assume you're using Bootstrap, since you're using their class names. HTML in itself has barely any styling possibilities, except for inline-css (like this: style="background-color: #FFFFFF;"). For layout, checkout their grid system.
Like someone already commented, a site that has css as a premium option probably isn't a site you want to be using. But if you have no other alternative, I made a version of this on codeply (using Bootstrap 5, not sure about which version your site uses, they are similar but not identical). I think this is something like what you're trying to achieve. I made some quite heavy changes on the markup, you'll have to fix the more exact layout yourself, I don't know exactly what you're trying to do, and I don't have the pictures.
Edit: here's the code I put on codeply:
<div class="container" style="background-color: black; max-width: 950px; border-radius: 5px;">
<div class="row m-3 p-3"
style="background: url('BG_IMG'); background-size: cover; background-color:#292929; max-width: 885px; border-radius: 5px;">
<div class="col-12">
<div class="card">
<img src="IMG_LINK" class="card-img-top" style: "max-width: 200px; border-radius: 5px">
<h1 class="card-title text-center">NAME</h1>
<p class="card-text fw-bold text-center">SUBTITLE</p>
</div>
</div>
</div>
<div class="row">
<div class="col-8">
<div class="card">
<h3 class="card-title m-3">Title?</h3>
<p class="card-text m-3">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut
labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse cillum dolore eu fugiat nulla pariatur.
</div>
</div>
<div class="col-4">
<div class="card">
<h3 class="card-title m-3">INTERESTS</h3>
<ul class="list-group">
<li class="list-group-item">CONTENT</li>
<li class="list-group-item">CONTENT</li>
<li class="list-group-item">CONENT</li>
<li class="list-group-item">CONTENT</li>
<li class="list-group-item">CONTENT</li>
</ul>
</div>
</div>
</div>
</div>

How to change specific text area color that is over background picture

I tried to change the color of the text on a specific zone. By specific, I mean the text area above the picture.
I use the TailwindCss library. But css is needed for this particular case. Here's what I did:
<div className='flex h-[600px] items-center'>
<div className='flex relative'>
<div className='flex flex-col relative'>
<div className='mb-[30px]'>
<h1 className='title text-9xl text-white truncate'>Explore Your own planet<br/>In <span className='stroke'>our New</span> metaverse</h1>
</div>
<div className='w-[26.2rem]'>
<p className='font-sans font-normal text-base text-white'>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</p>
</div>
</div>
</div>
<div className='absolute inset-y-0 right-[-190px] top-[20px] z-[-50]'>
<div className='first__circle relative left-[-525px] rounded-full w-[526px] h-[526px]'>
<div className='second__circle relative right-[-40px] bottom-[-40px] bg-[#1E1E20] rounded-full w-[446px] h-[446px]'>
<div className='third__circle relative right-[-30px] bottom-[-30px] bg-[#1E1E20] border-2 border-[#323232] rounded-full w-[384px] h-[384px]'>
<div className='fourth__circle relative right-[-14px] bottom-[-14px] bg-[#1E1E20] border-2 border-[#323232] rounded-full w-[354px] h-[354px]'>
<div className='fifth__circle relative right-[-14px] bottom-[-14px] rounded-full w-[320px] h-[322px]'>
</div>
</div>
</div>
</div>
</div>
</div>
<div>
</div>
</div>
You can use span tag and add styles to particular span using a class or id.

Fluid Bootstrap Container Not Aligning Rows Vertically with align-items-* when used with height:100%

I have a basic bootstrap container that has a fluid width. I want to be able to align three rows inside a sidebar to sit at the top, middle and bottom (much like this demo in the bootstrap documentation, but as a sidebar instead of full-width).
From what I can tell from other posts I've read this works with a fixed height, but not a fluid one (i.e. height 100%) - I need the sidebar and the content to both be the full height of the page. Then vertically align within that. However this doesn't seem to be possible. I was wondering if anyone knew a work around for this using bootstrap - it seem like it's something so commonly seen on the web these days that surely there must be a way of achieving it?
I've not added any custom CSS - all I'm attempting this with a classes available in Bootstrap (but I'm happy to create custom classes if required)
<div class="container-fluid h-100">
<div class="row h-100">
<div id="content" class="col-8 h-100">
<p>Some Content</p>
</div>
<div id="sidebar" class="col-4 h-100">
<div id="logo" class="row align-items-start">
<div class="col text-center">
<p>Test Top</p>
</div>
</div>
<div id="helpful-info" class="row align-items-center">
<div class="col text-center">
<p>Test Middle</p>
</div>
</div>
<div id="side-footer" class="row align-items-end">
<div class="col text-center">
<p>Test Bottom</p>
</div>
</div>
</div>
</div>
</div>
I think you’ll need some custom classes for the sidebar section to keep it in place. Beyond that, you just need to setup the sidebar as d-flex flex-column justify-content-between and the divisions should spread out the full height. The sidebar height is set by calculating the viewport height minus the height of the navbar.
<link href="https://cdn.jsdelivr.net/npm/bootstrap#4.6.0/dist/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap#4.6.0/dist/js/bootstrap.bundle.min.js"></script>
<style>
.sidebar {
position: fixed;
top: 0;
bottom: 0;
right: 0;
z-index: 100; /* Behind the navbar */
padding: 48px 0 0; /* Height of navbar */
box-shadow: inset -1px 0 0 rgba(0, 0, 0, 0.1);
}
.sidebar-sticky {
position: relative;
top: 0;
height: calc(100vh - 40px);
padding-top: 0.5rem;
overflow-x: hidden;
overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */
}
#supports ((position: -webkit-sticky) or (position: sticky)) {
.sidebar-sticky {
position: -webkit-sticky;
position: sticky;
}
}
</style>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<a class="navbar-brand mr-0" href="#">Site name</a>
<ul class="navbar-nav px-3">
<li class="nav-item text-nowrap">
<a class="nav-link" href="#">Sign out</a>
</li>
</ul>
</nav>
<div class="container-fluid">
<div class="row">
<main class="col-8 mr-auto" style="height: 200vh;">
<h2>Content Area</h2>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
deserunt mollit anim id est laborum.
</p>
</main>
<nav class="col-4 d-block bg-light sidebar">
<div class="sidebar-sticky d-flex flex-column justify-content-between">
<div id="logo" class="row">
<div class="col text-center">
<h6>Top Section</h6>
</div>
</div>
<div id="helpful-info" class="row">
<div class="col text-center">
<h6>Middle Section</h6>
</div>
</div>
<div id="side-footer" class="row">
<div class="col text-center">
<h6>Bottom Section</h6>
</div>
</div>
</div>
</nav>
</div>
</div>

Unable to achieve a custom grid layout with bootstrap

So I have been doing bootstrap for around a month, and so my HTML might be a bit messy. The background of the issue is that my task requires me to create a custom slick carousel to achieve a UI look like the one below:
With my current code this is what i am able to achieve:
Here is my html for what I have achieved so far:
.slider-left {
display: flex;
align-items: center;
p {
font-size: 16px;
border-bottom: 1px solid black;
padding-bottom: 10px;
}
}
.slider-middle {
display: flex;
align-items: center;
word-break: break-word;
h1 {
font-weight: bold;
color: blue;
}
h2 {
text-transform: uppercase;
font-style: italic;
font-size: 16px;
font-weight: normal;
}
}
.v-center {
width: 500px;
height: 1000px;
display: flex;
align-items: center;
}
.slider-image {
width: 100%;
}
.slider-right {
padding: 0;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<div class="container-fluid">
<div class="row">
<!-- Left most text -->
<div class="col-lg-1 slider-left text-right">
<div class="container center-align">
<p>Publication</p>
</div>
</div>
<!-- Middle Text -->
<div class="col-md-4 slider-middle center-align">
<div class="container">
<h2>title2</h2>
<h1>title1</h1>
<p>hsdajflaflasdfldsfhlsadfhlsdjfsdljflsjdfsjlfalsjfhjlasfhlsflasfhalfhlasfdsjfdsjlfadsljfhslajfalsjfljsflajflaflajsfdjlafhghurthruhffnfjgjrgbhrturhtadsofadflnvfnilawieoil</p>
<a></a>
</div>
</div>
<!-- Carousel Image -->
<div class="col-md-7 slider-right">
<img class="slider-image" src="<?php bloginfo('template_directory'); ?>/assets/images/image1.jpg" alt="">
</div>
</div>
<div class="row">
<div class="col-5 slider-nav">
<p>navigation</p>
</div>
</div>
</div>
I am required to use bootstrap to achieve any kind of ui design because my supervisor says it helps for the responsiveness of the website. What happens here is that the whole container is moved for a similar container over and over. Please let me know what to do and any explanation would be a great help. Apart from that if anyone knows how to insert custom buttons and custom pagination in that navigation bar can let me know, I would really appreciate it, though I haven't looked much into it.
Cheers :)
Do you mean something like this?
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<div class="container-fluid">
<div class="row">
<div class="col-md-6 col-sm-12">
<div class="row">
<div class="col-sm-4" style="background:#f2f2f2;">
Publication
</div>
<div class="col-sm-8">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
</div>
<div class="row">
<div class="col-sm-12" style="background:red;">navigation</div>
</div>
</div>
<div class="col-md-6 col-sm-12" style="background:#999;">
Image
</div>
</div>
</div>

Bootstrap 4 - How to make a column stretch to the height of the parent?

I want to create a card that contains an image slideshow, with an accompanying description div on the side. I was trying to get the description div to fill up to the same height as the image beside it.
Currently, the description div simply takes up as much height as its contents require, but I want it to expand to fill the parent div.
I tried applying flex-grow and setting style="flex: 1 1 auto" to the flex-column div but it doesn't seem to be changing anything.
I found a few posts addressing having rows filling the height of a parent div but none for columns.
I'm currently using w-100 as well, to have the column fill the remaining width of the parent div, but for some reason h-100 doesn't seem to work the same way.
HTML with Bootstrap 4.1.1 min.css:
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" rel="stylesheet"/>
<div class="card mb-4 box-shadow">
<div class="flex-row card-body d-flex flex-fill align-items-center">
<!-- Description Div -->
<div class="flex-column d-flex w-100 flex-fill align-items-end showborder">
<div class="p-2 ">
<!-- Project Title -->
<strong class="p-2 ">Title Text</strong>
<!-- GitHub Link -->
</div>
<div class="p-2 w-100 ">
<!-- Project Description -->
<p>
Description text Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis
aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
</div>
<div class="mt-auto p-2 ">
<!-- Link to Project -->
<a class="btn btn-primary btn-sm" href="#">Check it out</a>
</div>
</div>
<!-- Image Carousel -->
<div class="carousel slide showborder" data-ride="carousel">
<div class="carousel-inner ">
<div class="carousel-item active">
<img class="d-block w-100 " src="res/testimg1.jpg">
</div>
<div class="carousel-item">
<img class="d-block w-100 " src="res/testimg2.jpg">
</div>
</div>
</div>
</div>
</div>
If you just want the height of the text column to fill parent row height you can just add to it self-align:stretch.
See this in action: https://codepen.io/matteopieroni/pen/MXdGja
Then you will have to make adjustments in the column children to get the look you are after!
If this can be of your any help.
This align image beside the card.
Here is the fiddle - http://jsfiddle.net/ctudb8o6/
<div class="container">
<div class="card-group">
<div class="card">
<div class="card-body">
<h5 class="card-title">Card title</h5>
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
Go somewhere
</div>
</div>
<div class="card">
<img class="card-img-left" src="data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%22286%22%20height%3D%22180%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20286%20180%22%20preserveAspectRatio%3D%22none%22%3E%3Cdefs%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E%23holder_164697f30e4%20text%20%7B%20fill%3Argba(255%2C255%2C255%2C.75)%3Bfont-weight%3Anormal%3Bfont-family%3AHelvetica%2C%20monospace%3Bfont-size%3A14pt%20%7D%20%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%20id%3D%22holder_164697f30e4%22%3E%3Crect%20width%3D%22286%22%20height%3D%22180%22%20fill%3D%22%23777%22%3E%3C%2Frect%3E%3Cg%3E%3Ctext%20x%3D%22107.1953125%22%20y%3D%2296.271875%22%3E286x180%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E" alt="Card image cap">
</div>
</div>
</div>
</div>