Text alignment not center in all devices - html

I have a footer div with this code
.footer {
width: 100%;
height: 50px;
position: absolute;
bottom: 0;
background-color: #DDD;
}
.center-xy {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.footer-text {
font-family: 'Calibri';
font-size: 0.8em;
}
.footer-text a {
text-decoration: none;
}
<nav class="footer">
<div class="center-xy footer-text">
Made with <span style="color: red; font-size: 1.5em;">♥</span> by <strong>Shantanu Banerjee</strong>
</div>
</nav>
The problem is the footer-text is well centered in Laptop Screens and mobile phones. But on Mobile Phones the text comes in 2-lines.
What is the solution?

I am not sure about the code(at the time of posting the comment), but it looks like there's a lot of padding because even with adequate visible space, the text is wrapping. So..
Reduce padding around the text. OR
Apply white-space: nowrap; for your text.

Just add the following css
.footer-text {
min-width: 200px;
text-align: center;
}
And it will be fixed.
Here's a working demo:
.footer {
width: 100%;
height: 50px;
position: absolute;
bottom: 0;
background-color: #DDD;
}
.center-xy {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.footer-text {
font-family: 'Calibri';
font-size: 0.8em;
}
.footer-text a {
text-decoration: none;
}
.footer-text {
min-width: 200px;
text-align: center;
}
<nav class="footer">
<div class="center-xy footer-text">
Made with <span style="color: red; font-size: 1.5em;">♥</span> by <strong>Shantanu Banerjee</strong>
</div>
</nav>

try this:
.footer {
position: absolute;
bottom: 0;
margin:0;
background-color: #DDD;
left:0;
right:0;
padding:15px 0;
text-align:center
}
.center-xy {
}
.footer-text {
font-family: 'Calibri';
font-size: 0.8em;
}
.footer-text a {
text-decoration: none;
}
<nav class="footer">
<div class="center-xy footer-text">
Made with <span style="color: red; font-size: 1.5em;">♥</span> by <strong>Shantanu Banerjee</strong>
</div>
</nav>

just use
.center-xy {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
}

Related

How to Overly Text and Button on an Image

I'm trying to place Text and button on an image like this. Can someone help with this.
this is what I have tried. The thing is it does render properly in outlook email
CSS:
.container {
position: relative;
width: 100%;
max-width: 400px;
}
.container img {
width: 100%;
height: auto;
}
.container .btn {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
background-color: #55A646;
color: white;
font-size: 16px;
padding: 12px 24px;
border: none;
cursor: pointer;
border-radius: 5px;
text-align: center;
}
.container .btn:hover {
background-color: #55A646 ;
}
HTML:
<div class="container">
<img src="http://image.com" alt="" style="width:100%">
<button class="btn">Button</button>
</div>
Folow The link: https://www.w3schools.com/howto/howto_css_image_text.asp
/* Container holding the image and the text */
.container {
position: relative;
text-align: center;
color: white;
}
/* Bottom center text */
.bottom-center {
position: absolute;
bottom: 8px;
left: 45%;
}
/* Centered text */
.centered {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
<div class="container">
<img src="https://cdn.searchenginejournal.com/wp-content/uploads/2019/07/the-essential-guide-to-using-images-legally-online-760x400.png" alt="Snow" style="width:100%;">
<div class="bottom-center">
<button>Bottom Center</button>
</div>
<div class="centered">Centered</div>
</div>
try this instead,
.container {
position: relative;
width: 100%;
max-width: 400px;
}
.container img {
width: 100%;
height: 100%
}
.container .btn {
position: absolute;
bottom: 10px;
left: 50%;
transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
background-color: #55A646;
color: white;
font-size: 16px;
padding: 12px 24px;
border: none;
cursor: pointer;
border-radius: 5px;
text-align: center;
}
.container .btn:hover {
background-color: #00cc00 ;
}
h4{
position: absolute;
top: 40%;
left: 50%;
transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
color: #fff;
background:#111;
padding: 7px;
}
<div class="container">
<img src="https://i.stack.imgur.com/bf3jO.png" alt="" style="width:100%">
<h4>The table Fan</h4>
<button class="btn">Fan</button>
</div>

Invert colors of title over an image

Here is my current HTML:
.titleText {
font-family: Hacked;
font-size: 8rem;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 80%;
text-align: center;
}
.titleContainer {
position: relative;
}
body {
margin: 0;
}
<!DOCTYPE html>
<div class="titleContainer">
<img src="assets/ethan.png">
<h1 class="titleText">Ethan Brand</h1>
</div>
I want the text over the image to be the "opposite of transparent", inversing the color behind each pixel of text.
I found this: How can I invert color using CSS?
but that changes all of the text, not taking the inverse of each pixel.
Thanks!
Use mix-blend-mode: difference; with color: white on the text:
.titleText {
font-family: Hacked;
font-size: 8rem;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 80%;
text-align: center;
mix-blend-mode: difference;
color: white;
margin: 0;
}
.titleContainer {
position: relative;
}
body {
margin: 0;
}
<div class="titleContainer">
<img src="https://picsum.photos/800/400">
<h1 class="titleText">Ethan Brand</h1>
</div>

popup modal clickable background

I want my modal to disable all clicks on the background, it currently allows me to click the background when there is a button or link. How do I disable that because I thought the pointer:none was supposed to disable that?
Any help would be appreciated.
This is my CSS code and HTML code:
.ng-modal-overlay {
/* A dark translucent div that covers the whole screen */
position: fixed;
z-index: 9999;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #000000;
opacity:1.0;
pointer-events: none;
}
.ng-modal-dialog {
/* A centered div above the overlay with a box shadow. */
z-index: 10000;
position: fixed;
width: 50%; /* Default */
/* Center the dialog */
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
background-color: #fff;
box-shadow: 4px 4px 80px #000;
pointer-events: auto;
}
.ng-modal-dialog-content {
padding: 10px;
text-align: left;
}
.ng-modal-dialog-footer {
margin-top:40px;
text-align:right;
}
.ng-modal-close {
position: absolute;
top: 3px;
right: 5px;
padding: 5px;
cursor: pointer;
font-size: 150%;
color:red;
display: inline-block;
font-weight: bold;
font-family: 'arial', 'sans-serif';
}
<modal-dialog show="TeamManagementModal" class="ng-modal-overlay" data-backdrop="false">
<div class="modal-inner">
<div class=".ng-modal-dialog-content">
<p ng-bind-html="msg"></p>
<p ng-bind-html="ErrorMsg"></p>
</div>
<div class="ng-modal-dialog-footer">
<button style="width:160px;" class="btn solid-green-btn" ng-show="nowAdminOk" ng-click="Great()">Great</button>
</div>
</div>
</modal-dialog>

Why is my FontAwesome content appearing off center as a background?

I am trying to set a FontAwesome icon as a "defualt thumbnail" for a list of articles. My problem is that the icon is appearing off center horizontally in my div. See the jsFiddle.
<div class="card-row-image fa fa-cutlery thumbnail-default">
<div class="card-row-label">Restaurants
</div>
<div class="card-row-price">Pennsylvania</div>
</div>
.thumbnail-default {
position: relative;
text-align: center;
border: 1px solid #547b97;
background: #e4e4e4;
}
.thumbnail-default:before {
position:absolute;
font-family: 'FontAwesome';
font-size: 72px;
color: #547b97;
text-align: center;
padding: 0px;
margin: 0px;
top: 50%;
transform: translateY(-50%);
}
.card-row-price {
background-color: #009f8b;
bottom: 0px;
color: #fff;
font-size: 13px;
left: 50%;
padding: 3px 15px;
position: absolute;
transform: translateX(-50%);
-webkit-transform: translateX(-50%);
white-space: nowrap;
z-index: 2;
}
.card-row-label {
background-color: #c6af5c;
color: #fff;
left: 50%;
font-size: 13px;
padding: 3px 15px;
position: absolute;
top: 0px;
transform: translateX(-50%);
-webkit-transform: translateX(-50%);
z-index: 2;
}
.card-row-image {
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
height: 200px;
position: relative;
width: 262px; }
Here is my current output:
Any ideas? Thanks for your time!
set these css codes to make it centered. This happens because on absolute positioned pseudo elements, if you do not specify where to be horizontally (you did not set left or right property), it will follow the text flow and would obey the text-align: center set on the parent.
.thumbnail-default:before { left: 50%; transform: translate(-50%, -50%); }
Working Fiddle

How to center a text which is placed on an image

I have the following code:
HTML:
<div class="container-fluid">
<div class="row css-logo-image">
<a href="#">
<div class="meteor_head">
<h1 class="meteor_heading">Meteor</h1>
<h3>Some text!</h3>
</div>
<img src="" class="landing-image imageMeteor" />
</a>
</div>
<div class="row css-logo-image">
<a href="#">
<img src="" class="landing-image" />
</a>
</div>
</div>
CSS:
.meteor_head{
position: absolute;
z-index: 1;
margin-left: 40vw;
}
.imageMeteor{
position: relative;
z-index: 0;
}
.meteor_heading{
color: white;
font-size: 100px !important;
font-family: 'Exo 2', sans-serif;
}
.mainarea{
padding-top: 0 !important;
}
As you can see, I am trying to display the text on the image by using z-index. It works but the only problem is that I do not know how to center the text responsively. I tried a lot of things including:
margin-left:40vw;
It just refuses to work.
.meteor_head {
position: absolute;
z-index: 1;
width: 100%;
}
.imageMeteor {
position: relative;
z-index: 0;
}
.meteor_heading {
color: white;
font-size: 100px !important;
font-family: 'Exo 2', sans-serif;
text-align: center;
}
h3 {
text-align: center;
}
.mainarea {
padding-top: 0 !important;
}
If you know the height/width of the text the trick below could work:
.meteor_head{
position: absolute;
z-index: 1;
width: 200px;
height: 100px;
top:50%;
left:50;
margin-top: -50px;
margin-left: -100px;
}
Basically, you can center an absolute element using top/left 50% and then fix it by decreasing half of both height and width of the element...
try this
* {
box-sizing: border-box;
font-family: sans-serif;
}
.container {
position: relative;
overflow: hidden;
}
img {
width: 100%;
opacity: .8;
}
.centered-text {
border-radius: 6px;
padding: 0 6px;
color: white;
text-align: center;
background-color: rgba(0, 0, 0, .4);
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
<div class="container">
<img src="https://parrot-tutorial.com/images/nature_autumn.jpg">
<div class="centered-text">
<h4>Centered</h4>
<p>Lorem ipsum dolor sit amet.</p>
</div>
</div>