How do I make this Modal dialog more responsive? - html

Unresponsive Modal Dialog, without using Media queries or JS is what the goal (was) is. Can be done - but I have since lost the code to update the question.
You can see it on this Fiddle:
https://jsfiddle.net/4qkonfLk/
Code:
.modalDialog {
position: fixed;
font-family: Arial, Helvetica, sans-serif;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0, 0, 0, 0.8);
z-index: 99999;
opacity: 0;
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
pointer-events: none;
}
.modalDialog:target {
opacity: 1;
pointer-events: auto;
}
.modalDialog > div {
width: 400px;
position: relative;
margin: 10% auto;
padding: 5px 20px 13px 20px;
border-radius: 10px;
background: #fff;
background: -moz-linear-gradient(#fff, #999);
background: -webkit-linear-gradient(#fff, #999);
background: -o-linear-gradient(#fff, #999);
}
.close2 {
background: #606061;
color: #FFFFFF;
line-height: 25px;
position: absolute;
right: -12px;
text-align: center;
top: -10px;
width: 24px;
text-decoration: none;
font-weight: bold;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
-moz-box-shadow: 1px 1px 3px #000;
-webkit-box-shadow: 1px 1px 3px #000;
box-shadow: 1px 1px 3px #000;
}
.close2:hover {
background: #00d9ff;
}
Other Information
<div id="openModal" class="modalDialog">
<div> X
</div>
</div>
Any Suggestions on how to fix this? Thanks!

You can specify mobile-only CSS by using media queries, media queries applies CSS rules only in specific conditions such as a width range, for more see the following article.
In your case you can target mobiles width (which is usually 360px) as the max-width of your media query as following:
.modalDialog {
position: fixed;
font-family: Arial, Helvetica, sans-serif;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0, 0, 0, 0.8);
z-index: 99999;
opacity: 0;
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
pointer-events: none;
}
.modalDialog:target {
opacity: 1;
pointer-events: auto;
}
.modalDialog > div {
width: 400px;
position: relative;
margin: 10% auto;
padding: 5px 20px 13px 20px;
border-radius: 10px;
background: #fff;
background: -moz-linear-gradient(#fff, #999);
background: -webkit-linear-gradient(#fff, #999);
background: -o-linear-gradient(#fff, #999);
}
.close2 {
background: #606061;
color: #FFFFFF;
line-height: 25px;
position: absolute;
right: -12px;
text-align: center;
top: -10px;
width: 24px;
text-decoration: none;
font-weight: bold;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
-moz-box-shadow: 1px 1px 3px #000;
-webkit-box-shadow: 1px 1px 3px #000;
box-shadow: 1px 1px 3px #000;
}
.close2:hover {
background: #00d9ff;
}
#media (max-width: 360px) {
.modalDialog > div {
width: 300px;
}
}
Other Information
<div id="openModal" class="modalDialog">
<div> X
</div>
</div>

You want to use #media queries to create alternative renderings.
Like:
#media screen and (min-width: 480px) {
body {
background-color: lightgreen;
}
}
rynave's answer here lists many good common ones; I think it is common to have 2-4 for:
pc/tablet, phone
phone, tablet, pc
phone, tablet, pc, hi res
Or
watch app, phone, tablet, pc
Not sure his iPhone one is so useful any more.

I ended up using some custom CSS classes based on the screensize (Media Queries)to use something different for smaller screens - I ended up scrapping the entire thing after though, so this question is pretty much irrelevant to anything in the community, since I couldn't delete it, I am editing my answers to help understand what I was talking about.

Related

Make this button responsive with #media screen

How can i make this buttons responsive?
(with the phone) i want see the buttons with a full width, but i can't and i don't know why!
PS: You can change everything you want, but please help me!
PS2: The buttons have an animation, i know how to block this so use only this code.
If you need more information about this, just ask, i will answer you soon i can! Sorry for my bad english and thank you for the help!
.bottoni {
display: block;
z-index: 999;
width: 100px;
height: 100%;
position: absolute;
top: 50%; bottom: 0; right: 0;
transform:translateX(-190%);
margin-top: -200px;
text-align: left;
}
.bottoni > a {
display: inline-block;
padding: 10px 40px;
min-width: 240px;
margin: 20px;
background: rgba(0, 0, 0, 0.9);
border-left: 15px solid #f45341;
border-right: 3px solid #f45341;
text-decoration: none;
color: #fff;
text-transform: uppercase;
font-size: 30px;
background: linear-gradient(to left, #f45341 50%, rgba(96, 96, 96, 0.4) 50%);
background-position: 0% 0%;
background-size: 200%;
transition: background 150ms ease-in-out, color 150ms ease-in-out;
transition: .3s;
font-family: pricedown;
border-radius: 5px;
text-align: left;
}
.bottoni > a:hover {
color: #fff;
background-position: -100% 0%;
cursor: pointer;
border-left: 15px solid #f45341;
}
.bottoni2 {
display: block;
z-index: 999;
width: 100px;
height: 100%;
margin: 0;
position: absolute;
top: 50%; bottom: 0; left: 0;
transform:translateX(-100%);
margin-top: -200px;
text-align: right;
}
.bottoni2 > a {
display: inline-block;
padding: 10px 40px;
min-width: 240px;
margin: 20px;
background: rgba(0, 0, 0, 0.9);
border-right: 15px solid #f45341;
border-left: 3px solid #f45341;
text-decoration: none;
color: #fff;
text-transform: uppercase;
font-size: 30px;
background: linear-gradient(to right, rgba(96, 96, 96, 0.4) 50%, #f45341 50%);
background-position: 0% 0%;
background-size: 200%;
transition: background 150ms ease-in-out, color 150ms ease-in-out;
transition: .3s;
font-family: pricedown;
border-radius: 5px;
text-align: right;
}
.bottoni2 > a:hover {
color: #fff;
background-position: -100% 0%;
cursor: pointer;
border-right: 15px solid #f45341;
}
#media only screen and (max-width: 768px) {
.bottoni{
width: 100%;
position: relative;
display: inline-block;
transform:translate(0%,0%);
top: 0; bottom: 0; right: 0; left: 0;
}
}
<div class="bottoni">
<a target="blank_" id="store" href="http://store.sparocraft.eu">Store</a>
<a target="blank_" id="votaci" href="http://vota.sparocraft.eu">Votaci</a>
</div>
<div class="bottoni2">
<a target="blank_" id="ts" class="offline" href="ts3server://ts.sparocraft.eu">TeamSpeak</a>
<a target="blank_" id="bans" class="offline" onclick="offline();">Bans</a>
</div>
There are a couple things going on:
First, I changed your CSS to have mobile/small screens first. This way you can have all your styles for the buttons and then just change the positioning for larger screens. Second, you can easily combine styles for your buttons so you don't have a bunch of repeating styles.
Hopefully this is what you're looking for:
* {
box-sizing: border-box;
}
.bottoni,
.bottoni2 {
position: relative;
}
.bottoni > a,
.bottoni2 > a {
display: block;
width: 100%;
padding: 10px 40px;
margin: 20px 0;
background: rgba(0, 0, 0, 0.9);
border-left: 15px solid #f45341;
border-right: 3px solid #f45341;
text-decoration: none;
color: #fff;
text-transform: uppercase;
font-size: 30px;
background: linear-gradient(to left, #f45341 50%, rgba(96, 96, 96, 0.4) 50%);
background-position: 0% 0%;
background-size: 200%;
transition: background .3s ease-in-out, color .3s ease-in-out;
font-family: pricedown;
border-radius: 5px;
text-align: left;
}
.bottoni > a:hover,
.bottoni2 > a:hover {
color: #fff;
background-position: -100% 0%;
cursor: pointer;
}
#media screen and (min-width: 768px) {
.bottoni,
.bottoni2 {
position: absolute;
width: 300px;
top: 50%;
right: 0;
transform: translatey(-100%);
}
.bottoni > a,
.bottoni2 > a {
position: relative;
width: 300px;
}
.bottoni2 {
left: 0;
right: auto;
}
.bottoni2 > a {
border-right: 15px solid #f45341;
border-left: 3px solid #f45341;
}
.bottoni2 > a:hover {
border-right: 15px solid #f45341;
}
}
<div class="bottoni">
<a target="blank_" id="store" href="http://store.sparocraft.eu">Store</a>
<a target="blank_" id="votaci" href="http://vota.sparocraft.eu">Votaci</a>
</div>
<div class="bottoni2">
<a target="blank_" id="ts" class="offline" href="ts3server://ts.sparocraft.eu">TeamSpeak</a>
<a target="blank_" id="bans" class="offline" onclick="offline();">Bans</a>
</div>
Here is the fiddle so you can check it out:
https://jsfiddle.net/sxcg1o7u/1/

Modal Window functionality using only CSS

I wanted to display a modal window on clicking on the buttons by using only css.
So far everything works but expect one thing. When i click anywhere out side the modal window, i need to close the modal box which is not happenig now. Is there any way we can do it only using css ? Please help
.modalDialog {
position: fixed;
font-family: Arial, Helvetica, sans-serif;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0, 0, 0, 0.8);
z-index: 99999;
opacity: 0;
/* -webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;*/
pointer-events: none;
}
.modalDialog:target {
opacity: 1;
pointer-events: auto;
}
.modalDialog>div {
width: 400px;
position: relative;
margin: 10% auto;
padding: 5px 20px 13px 20px;
border-radius: 10px;
background: #fff;
background: -moz-linear-gradient(#fff, #999);
background: -webkit-linear-gradient(#fff, #999);
background: -o-linear-gradient(#fff, #999);
}
.close {
background: #606061;
color: #FFFFFF;
line-height: 25px;
position: absolute;
right: -12px;
text-align: center;
top: -10px;
width: 24px;
text-decoration: none;
font-weight: bold;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
-moz-box-shadow: 1px 1px 3px #000;
-webkit-box-shadow: 1px 1px 3px #000;
box-shadow: 1px 1px 3px #000;
}
.close:hover {
background: #00d9ff;
}
<div class="cta-module bottom-divider">
<h2>Looking for Health EFPPOS Solutions?</h2>
<div class="cta-wrapper">
<p>Our mobile EFTPOS facilities are convenient, portable and secure</p>
<p><a class="button_primary" href="#openModal">Apply</a></p>
<p><a class="button_secondary" href="#openModal">Learn more</a></p>
</div>
</div>
<div id="openModal" class="modalDialog">
<div>
X
<h2>Modal Box</h2>
<p>This is a sample modal box that can be created</p>
<p>Whether it's a new or second-hand car, a personal loan can help you pay for your car if you don't have the funds up front.</p>
</div>
</div>

Enlarge an image on :Hover

I started learning playing with HTML and CSS.
I have something in mind, and I know this is possible with the help of JavaScript.
But I want to know if its possible just with CSS.
here is my image:
<img id="picturegoeshere" src="picture.png" width="100" height="90">
here is the CSS part:
.picturegoeshere:hover
{
transform:scale(2,2);
transform-origin:0 0;
}
Is their a way to click the image, then pop up ? "hover" works but I want the 'popup' to stay. Because after this part works, but I want to add information about the image (hyperlinks or something else).
I found .picturegoeshere:active but that only makes it bigger while the mouse click is still down..
I'm sure many people have asked the same question, but I cant seem to find their questions, I must be searching the wrong questions because I don't know the terminology for CSS yet I guess?
No did not like that you are doing ...
If you want with this css only then do this ...
as you know you can use focus instead of click it !right! (both mean same).
just create that pop up menu on screen and hide it and then use css like this
#image1:focus #popupmenu{
display:initial;
}
what you need :::
1. Just show image on the screen first.
Show the popup menu by using position:fixed;
And then hide your menu.
After hide use
#image1:focus #popupmenu{ display:initial; }
This create a popup menu for you.
Use same method for close button and for thumb changing
<a href="#openModal">
<img src="http://www.cssscript.com/wp-content/themes/iconic-one/img/twitter.png" alt="Follow us on Twitter"></a>
<div id="openModal" class="modalDialog">
<div>
X
<h2>Modal Box</h2>
<p>This is a sample modal box that can be created using the powers of CSS3.</p>
<p>You could do a lot of things here like have a pop-up ad that shows when your website loads, or create a login/register form for users.</p>
</div>
.modalDialog {
position: fixed;
font-family: Arial, Helvetica, sans-serif;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0, 0, 0, 0.8);
z-index: 99999;
opacity:0;
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
pointer-events: none;
}
.modalDialog:target {
opacity:1;
pointer-events: auto;
}
.modalDialog > div {
width: 400px;
position: relative;
margin: 10% auto;
padding: 5px 20px 13px 20px;
border-radius: 10px;
background: #fff;
background: -moz-linear-gradient(#fff, #999);
background: -webkit-linear-gradient(#fff, #999);
background: -o-linear-gradient(#fff, #999);
}
.close {
background: #606061;
color: #FFFFFF;
line-height: 25px;
position: absolute;
right: -12px;
text-align: center;
top: -10px;
width: 24px;
text-decoration: none;
font-weight: bold;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
-moz-box-shadow: 1px 1px 3px #000;
-webkit-box-shadow: 1px 1px 3px #000;
box-shadow: 1px 1px 3px #000;
}
.close:hover {
background: #00d9ff;
}
I think you are looking for this:
body {
font-family: Arial, sans-serif;
background: url(4.jpg);
background-size: cover;
}
h1 {
text-align: center;
font-family: Tahoma, Arial, sans-serif;
color: orange;
margin: 100px 0;
}
.box {
width: 20%;
margin: 0 auto;
background: rgba(255,255,255,0.2);
padding: 35px;
border: 2px solid #fff;
border-radius: 20px/50px;
background-clip: padding-box;
text-align: center;
}
.button {
font-size: 1em;
padding: 10px;
color: #fff;
border: 2px solid orange;
border-radius: 20px/50px;
text-decoration: none;
cursor: pointer;
transition: all 0.3s ease-out;
background: orange;
}
.button:hover {
background: orange;
}
.overlay {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(0, 0, 0, 0.7);
transition: opacity 500ms;
visibility: hidden;
opacity: 0;
}
.overlay:target {
visibility: visible;
opacity: 1;
}
.popup {
margin: 70px auto;
padding: 20px;
background: #fff;
border-radius: 5px;
width: 30%;
position: relative;
transition: all 5s ease-in-out;
}
.popup h2 {
margin-top: 0;
color: #333;
font-family: Tahoma, Arial, sans-serif;
}
.popup .close {
position: absolute;
top: 20px;
right: 30px;
transition: all 200ms;
font-size: 30px;
font-weight: bold;
text-decoration: none;
color: #333;
}
.popup .close:hover {
color: orange;
}
.popup .content {
max-height: 30%;
overflow: auto;
}
<h1>Popup/Modal Windows without JavaScript</h1>
<div class="box">
<a class="button" href="#popup1">Let me Pop up</a>
</div>
<div id="popup1" class="overlay">
<div class="popup">
<h2>Here i am</h2>
<a class="close" href="#">×</a>
<div class="content">
Thank to pop me out of that button, but now i'm done so you can close this window.
</div>
</div>
</div>
Check this site:-
http://www.sevensignature.com/blog/code/pure-css-popup-without-javascript
http://meyerweb.com/eric/css/edge/popups/demo.html

HTML5 Modal Window not working in IE or Chrome

On the page http://canadianwhoswho.ca/order-subscribeonline.php I have created a modal window that opens when users click http://canadianwhoswho.ca/order-subscribeonline.php#openModal. This works perfectly in Firefox, but not in IE or Chrome. Instead, it just adds the modal text to the top of the page.
Here is the CSS:
.modalDialog {
position: fixed;
font-family: Arial, Helvetica, sans-serif;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0,0,0,0.8);
z-index: 99999;
opacity:0;
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
pointer-events: none;
}
.modalDialog:target {
opacity:1;
pointer-events: auto;
}
.modalDialog > div {
width: 400px;
position: relative;
margin: 10% auto;
padding: 5px 20px 13px 20px;
border-radius: 10px;
background: #E4E4E4;
background: -moz-linear-gradient(#E4E4E4, #F6F6F6);
background: -webkit-linear-gradient(#E4E4E4, #F6F6F6);
background: -o-linear-gradient(#E4E4E4, #F6F6F6);
}
.close {
background: #E4E4E4;
color: #922211 !important;
line-height: 25px;
position: absolute;
right: -12px;
text-align: center;
top: -10px;
width: 24px;
text-decoration: none;
font-weight: bold;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
-moz-box-shadow: 1px 1px 3px #000;
-webkit-box-shadow: 1px 1px 3px #000;
box-shadow: 1px 1px 3px #000;
}
.close:hover {
background: #922211;
color: #E4E4E4 !important;
}
And the HTML:
<div id="openModal" class="modalDialog">
<div>
X
<h2>Thank you for your interest in <em>Canadian Who's Who</em></h2>
<p>To place an order, please contact us at info#canadianwhoswho.ca, or call 705-325-5552.</p>
</div>
Choose</p>
i found similar answer on http://cameronbaney.com/2012/07/26/pure-html5css3-responsive-modal-window/
I have tried it and works for all three IE, Chrome and Firefox.
Hope it helps.

Video in popup box

I am trying to embed a youtube code inside a popup box when the user clicks a link like this:
However another user is having a problem on Firefox when the video is not even embed in the popup:
The user is having the problem in Firefox but when I tested it in Firefox everything was OK.
Is there something in the settings of Firefox that he has and I don't?
Here is the code:
<!DOCTYPE html>
<head>
<title>Creating a modal window with HTML5 & CSS3</title>
<style>
.modalDialog {
position: fixed;
font-family: Arial, Helvetica, sans-serif;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0,0,0,0.8);
z-index: 99999;
opacity:0;
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
pointer-events: none;
}
.modalDialog:target {
opacity:1;
pointer-events: auto;
}
.modalDialog > div {
width: 560px;
position: relative;
margin: 10% auto;
padding: 5px 20px 13px 20px;
border-radius: 10px;
background: #fff;
background: -moz-linear-gradient(#fff, #999);
background: -webkit-linear-gradient(#fff, #999);
background: -o-linear-gradient(#fff, #999);
}
.close {
background: #606061;
color: #FFFFFF;
line-height: 25px;
position: absolute;
right: -12px;
text-align: center;
top: -10px;
width: 24px;
text-decoration: none;
font-weight: bold;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
-moz-box-shadow: 1px 1px 3px #000;
-webkit-box-shadow: 1px 1px 3px #000;
box-shadow: 1px 1px 3px #000;
}
.close:hover { background: #00d9ff; }
h2
{
text-align:center;
}
</style>
</head>
<body>
Open Modal
<div id="openModal" class="modalDialog">
<div>
X
<h2>Youtube Video</h2>
<iframe width="560" height="315" src="http://www.youtube.com/embed/98H2x9BjUxE?rel=0" frameborder="0" allowfullscreen></iframe>
</div>
</div>
</body>
I have done a jsFiddle to solve this http://jsfiddle.net/sMpcL/1/
I've added the following: -
.modalDialog { display: none; }
.modalDialog:target { display: block; }
It's working for me in Chrome and Firefox