I'm making a website, in which i need to set bottom and right rules for the absolute position for a text.
But it seems that IE9 only understands position:absolute; but not bottom:xx; or right:xx;.
Here's a pic of what i'm talking about:
IE:
Chrome:
HTML :
<div id="slides_wrapper">
<a href="gallery.aspx">
<div id="gallery_slide">
<p>Gallery</p>
</div>
</a>
<a href="sessions.aspx">
<div id="sessions_slide">
<p>Sessions</p>
</div>
</a>
<a href="offers.aspx">
<div id="offers_slide">
<p>Offers</p>
</div>
</a>
<a href="about.aspx">
<div id="about_slide">
<p>About Us</p>
</div>
</a>
<a href="contact.aspx">
<div id="contact_slide">
<p>Contact Us</p>
</div>
</a>
</div>
And the CSS for that section :
#slides_wrapper
{
text-align:center;
}
#slides_wrapper div
{
border-radius : 5px;
border:1px inset black;
height:500px;
width:120px;
display:inline-block;
cursor:pointer;
position:relative;
}
#slides_wrapper p
{
text-shadow :3px 3px 9px black;
white-space:nowrap;
font-size:28px;
font-family:arial;
font-weight:bold;
color:White;
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
-o-transform: rotate(-90deg);
position:absolute;
}
#gallery_slide
{
background: url('../img/gallery_slide.jpg') no-repeat -130px -120px;
}
#gallery_slide > p
{
bottom:50;
right:-20;
}
#session_slide
{
background: url('../img/sessions_slide.jpg') no-repeat -240px 0px;
}
#session_slide > p
{
bottom:60;
right:-30;
}
#offers_slide
{
background: url('../img/offers_slide.jpg') no-repeat -300px -135px;
}
#offers_slide > p
{
bottom:45;
right:-20;
}
#about_slide
{
background: url('../img/about_slide.jpg') no-repeat -350px 0px;
}
#about_slide > p
{
bottom:65;
right:-35;
}
#contact_slide
{
background: url('../img/contact_slide.jpg') no-repeat -600px 0px;
}
#contact_slide > p
{
bottom:75;
right:-50;
}
Whenever you're setting styles for a fixed number of pixels, make sure to put 'px' after the number.
#gallery_slide > p
{
bottom: 50px;
right: -20px;
}
I assume that's what you meant to do here. In other cases, you might prefer to use a percentage, so your unit would be '%'. For ems, use 'em', and so on.
Units are required on all non-zero lengths. You have none, so the length is invalid. IE9's behaviour is correct.
Use this and i'm sure you can achieve results.
http://css3pie.com/
Related
In my project, I have three divs.
"upBtDiv and ulfDiv" are in attFile div.
The font-size in upBtDiv is 16px, and it works successfully.But the font-size of 10px in ulfDiv works fail.The font-size in ulfDiv is remain 16px.
When i define .attFile{margin-left:15%;margin-top:5%;font-szie:10px}, and it works fine.But the font-size of "upBtDiv and ulfDiv" are both 10px.
Here is my css code:
.attFile {
margin-left:15%;
margin-top:5%
}
.upBtDiv {
position:relative;
overflow:hidden;
display:inline-block;
display:inline;font-size:16px
}
.upBtDiv label { cursor:pointer }
.upBtDiv input {
position:absolute;
top:0;
right:0;
margin:0;
border:solid transparent;
opacity: 0;
filter:alpha(opacity=0);
cursor:pointer;
width:66%
}
.ulfDiv {
height:10px;
line-height:22px;
margin:10px 0;
font-size:10px
}
.ulfDiv .delimg,
.dwlimg {
color:#090;
cursor:pointer;
display:none
}
.ulfDiv:hover .delimg {
display: inline-block;
}
.ulfDiv:hover .dwlimg {
display: inline-block;
}
.delimg:hover { color:blue; }
.dwlimg:hover { color:blue; }
<div class="attFile" id="attFileId">
<div class="upBtDiv">
<label style="color:green">attfile:</label>
<input type="file" id="fulId" name="mypic">
</div>
<div class="ulfDiv" id="ulfId1">
<b class='dataname'>30k</b>
<span class='delimg' rel='" + data.pic + "'>delete</span>
<a class='dwlimg' href='files/" + data.pic + "' target='_blank'>add</a>
</div>
</div>
It seems nothing wrong in my code.I suppose the overflow:hidden attribute of upBtDiv is the reason.But i have no idea about it. Who can help me ?
.attFile > .upBtDiv{
font-size: 28px;
}
.attFile > .ulfDiv{
font-size: 23px;
}
<div class="attFile" id="attFileId">
<div class="upBtDiv" >
<label style="color:green">attfile:</label> <input type="file" id="fulId" name="mypic">
</div>
<div class="ulfDiv" id="ulfId1">
<b class='dataname' >30k</b>
<span class='delimg' rel='"+data.pic+"'>delete</span>
<a class='dwlimg' href='files/"+data.pic+"' target='_blank'>add</a>
</div>
</div>
I'm trying to reproduce some pieces of CSS from the http://flink.to website, especially the tiles which contains for each article the picture, the title, the author, the link to the author page and the link to the article.
Here is the HTML for one tile :
<div class="block-module">
<a href="http://flink.to/stories/54b6e61de3039db33f00000b" class="article-link">
<span class="button">View Story</span>
</a>
<img src="https://cdn01.flink.to/api/image/54f492ec30323921c9000000/300/300/fill">
<div class="block-about">
<h2 class="block-title">Arch Enemy’s Perpetual Revolution</h2>
<span class="block-stats">
by Andrew Epstein
</span>
</div>
</div>
Here is the CSS for one tile :
.block-module { width: 283px; height: 283px; font-size: 0.9622em; display: block; cursor:pointer; border-radius:0.3125em; overflow:hidden; z-index:4; position:relative; }
.block-about { position:absolute; bottom:0; left:0; right:0; padding:4em 1em 1em 1em; background-image:-webkit-linear-gradient(transparent, rgba(0,0,0,0.55), rgba(0,0,0,0.8)); background-image:linear-gradient(transparent, rgba(0,0,0,0.55), rgba(0,0,0,0.8)); }
.block-about a { position:relative; z-index:5; }
.block-title { max-width:100%; margin:0 0 0; color: white !important;font-size:1.625em; }
.block-stats { width:100%; margin-top:0.35714em; font-size:0.875em; color:rgba(255,255,255,0.55) !important; }
.button { color:#ffffff; background-color:#337d94; }
.author-link { color:#659dae; }
Everything's OK except that we can't access the article and the "view story" link which is supposed to show up only when we hover the picture, in the middle/center of it.
Edit : Here is a demo : http://jsfiddle.net/5qwejk20/
As the website's CSS sheet of Flink.to is really very complicated, I didn't find how to resolve this. Could you please help me ?
There is a lot of CSS, and obviously it's hard to tell what does what and it will need to be trimmed. But from what I can tell these are the styles making it happen. The button opacity is initially 0 (hidden), so needed to change to 1.
JSFiddle
I added this style to make it show with the cursor
.view-full-module.mod-custom-icon:hover .button.view-full-custom-el {
opacity: 1;
}
By looking at the css the elements are hiding and showing by using the z-index property and CSS Positioning. Try the following code, I use different values of z-index to overlap elements. Remember that the z-index property only is valid for elements with position:absolute,position:relative or position:fixed so you have to scaffold your website having this on mind. I also added an id to the img to select it on the css. http://jsfiddle.net/cfahhmkj/
HTML
<div class="block-module">
<a href="http://flink.to/stories/54b6e61de3039db33f00000b" class="article-link">
<span class="button">View Story</span>
</a>
<img class="albumImage" src="https://cdn01.flink.to/api/image/54f492ec30323921c9000000/300/300/fill">
<div class="block-about" >
<h2 class="block-title">Arch Enemy’s Perpetual Revolution</h2>
<span class="block-stats">
by Andrew Epstein
</span>
</div>
</div>
CSS
.block-module { width: 283px; height: 283px; font-size: 0.9622em; display: block; cursor:pointer; border-radius:0.3125em; overflow:hidden; z-index:4; position:relative; }
.block-about { position:absolute; bottom:0; left:0; right:0; padding:4em 1em 1em 1em; background-image:-webkit-linear-gradient(transparent, rgba(0,0,0,0.55), rgba(0,0,0,0.8)); background-image:linear-gradient(transparent, rgba(0,0,0,0.55), rgba(0,0,0,0.8)); }
.block-about a { position:relative; z-index:5; }
.block-title { max-width:100%; margin:0 0 0; color: white !important;font-size:1.625em; }
.block-stats { width:100%; margin-top:0.35714em; font-size:0.875em; color:rgba(255,255,255,0.55) !important; }
.button { color:#ffffff; background-color:#337d94; }
.author-link { color:#659dae; }
.article-link {
position:absolute;
left:110px;
top: 120px;
z-index:-1;
}
.albumImage{
position:absolute;
z-index:0;
}
.albumImage:hover{
z-index:-2;
}
I am trying to teach myself to use the Skrollr plugin properly, I am mainly interested in the classic example listed in the documentation. (http://prinzhorn.github.io/skrollr/examples/classic.html).
My problem is that my footer doesn't appear at the bottom of the page, instead it appears below the first image in my Skrollr gallery. I want to keep the footer separate from #skrollr-body as this gallery would only appears on a specific page.
This is my code, it's essentially a slightly simplified version of the example.
html:
<div
class="parallax-image-wrapper parallax-image-wrapper-100"
data-anchor-target="#dragons + .gap"
data-bottom-top="transform:translate3d(0px, 200%, 0px)"
data-top-bottom="transform:translate3d(0px, 0%, 0px)">
<div
class="parallax-image parallax-image-100"
style="background-image:url(/assets/img/rocks.jpg)"
data-anchor-target="#dragons + .gap"
data-bottom-top="transform: translate3d(0px, -50%, 0px);"
data-top-bottom="transform: translate3d(0px, 50%, 0px);">
</div>
</div>
<div
class="parallax-image-wrapper parallax-image-wrapper-100"
data-anchor-target="#bacons + .gap"
data-bottom-top="transform:translate3d(0px, 200%, 0px)"
data-top-bottom="transform:translate3d(0px, 0%, 0px)">
<div
class="parallax-image parallax-image-100"
style="background-image:url(/assets/img/tiles.jpg)"
data-anchor-target="#bacons + .gap"
data-bottom-top="transform: translate3d(0px, -50%, 0px);"
data-top-bottom="transform: translate3d(0px, 50%, 0px);">
</div>
</div>
<div
class="parallax-image-wrapper parallax-image-wrapper-100"
data-anchor-target="#kittens + .gap"
data-bottom-top="transform:translate3d(0px, 200%, 0px)"
data-top-bottom="transform:translate3d(0px, 0%, 0px)">
<div
class="parallax-image parallax-image-100"
style="background-image:url(/assets/img/sky.jpg)"
data-anchor-target="#kittens + .gap"
data-bottom-top="transform: translate3d(0px, -50%, 0px);"
data-top-bottom="transform: translate3d(0px, 50%, 0px);">
</div>
</div>
<div id="skrollr-body">
<div id="dragons"></div>
<div class="gap gap-100"></div>
<div id="bacons"></div>
<div class="gap gap-100"></div>
<div id="kittens"></div>
<div class="gap gap-100"></div>
</div>
<div id="footer">
some footer stuff
</div>
and css:
* {
padding:0;
margin:0;
}
html, body {
height:100%;
}
#content {
height:100%;
position: relative;
}
.skrollr-desktop body {
height:100% !important;
}
.parallax-image-wrapper {
position:fixed;
left:0;
width:100%;
overflow:hidden;
}
.parallax-image-wrapper-50 {
height:50%;
top:-50%;
}
.parallax-image-wrapper-100 {
height:100%;
top:-100%;
}
.parallax-image {
display:none;
position:absolute;
bottom:0;
left:0;
width:100%;
background-repeat:no-repeat;
background-position:center;
background-size:cover;
}
.parallax-image-50 {
height:200%;
top:-50%;
}
.parallax-image-100 {
height:100%;
top:0;
}
.parallax-image.skrollable-between {
display:block;
}
.no-skrollr .parallax-image-wrapper {
display:none !important;
}
#skrollr-body {
height:100%;
overflow:visible;
position:relative;
}
.gap {
background:transparent center no-repeat;
background-size:cover;
}
.skrollr .gap {
background:transparent !important;
}
.gap-50 {
height:50%;
}
.gap-100 {
height:100%;
}
#footer {
clear: both;
height: 100px;
background-color: red;
}
Put the footer element inside #skrollr-body. To make everything work on desktop/mobile, the only body content that will reside outside of #skrollr-body are your fixed position controls and attributes for the parallax-image-wrapper & parallax-image sets.
If you require additional "fixed" positioned elements in your layout, you'll need to list those outside #skrollr-body setting a data-anchor-target attribute for the div, and then call that target #id you created down in the #skrollr-body wherever you need it to display.
Like how they do with #dragons, #bacons, & #kittens targets in the classic example docs.
I just hit sth that appears to be a bug or at least a really weird feature of CSS/HTML.
Now, the problem is that i got three divs in a row, all inside a parent div.
The first and the second one are supposed to be text containers in a chat-like matter. The last one is supposed to be excluded and be a paging navigation.
On the very first page, that works fine. On every other page, the last text container div expands over the navigation. When using the Chrome developer tools, it shows me that the second div is only having its real size, while the background still expands over the navigation. But if i delete the navigation, the second text container resizes to its real size.
Also, when using
position:absolute;
it doesn't expand. Setting the position to relative explicitly didn't fix the problem and setting the background-color to sth else didn't change the white background.
I made you a quick demonstration under jsfiddle.net.
So the final question is: Why does the second text div expand? Or doesn't it but it looks like it does?
//edit: As suggested in the comments, here is the raw CSS/HTML outside jsfiddle. I still don't think that's a good idea, but if you say so..
<div class="decoded_chat" pagenr="1" style="display: block;">
<div class="decoded_user decoded_user_first" isme="0">
<a href="https://www.facebook.com/4" target="_new" title="Profil aufrufen">
<img class="decoded_user_avatar" src="http://graph.facebook.com/4/picture?type=square">
<div class="decoded_user_name">
Zuckerberg
</div>
</a>
<div class="decoded_msg_date">
02.02.2014, 01:36 Uhr
</div>
<div class="decoded_msg">
I will listen to the songs when I'm not so tired
</div>
<div class="decoded_msg">
I don't know.. Possibly
</div>
<div class="decoded_user decoded_user_last" isme="0">
<a href="https://www.facebook.com/4" target="_new" title="Profil aufrufen">
<img class="decoded_user_avatar" src="http://graph.facebook.com/4/picture?type=square">
<div class="decoded_user_name">
Zuckerberg
</div>
</a>
<div class="decoded_msg_date">
02.02.2014, 01:33 Uhr
</div>
<div class="decoded_msg">
I've been ill all week.. Just haven't had time for much
</div>
<div class="decoded_chat_pager">
<a href="javascript:void(0);" pagenr="0" class="cloudview_msg_prev">
« Vorherige Seite
</a>
<a href="javascript:void(0);" pagenr="2" class="cloudview_msg_next">
Nächste Seite »
</a>
</div>
</div>
a {
text-decoration: none;
color: white;
}
.chat_list {
width:100%;
}
.decoded_chat {
text-align:left;
width:100%;
margin:auto;
background-color:white;
color:black;
border-radius:10px;
}
.cloudview_msg_next {
float:right;
}
.decoded_chat_pager {
margin:auto;
margin-top:5px;
text-align:left;
width:95%;
}
.decoded_msg {
margin-bottom:3px;
}
.decoded_user {
padding:15px 10px;
min-height:50px;
}
.decoded_user_last {
border-bottom-left-radius:10px;
border-bottom-right-radius:10px;
}
.decoded_user_first {
border-top-left-radius:10px;
border-top-right-radius:10px;
}
.decoded_user_name {
color:black;
margin-bottom:5px;
}
.mychatmessage {
background-color:#BFF2BF;
}
.decoded_msg_date {
float:right;
color:grey;
margin-top:-30px;
}
.decoded_user_avatar {
position:absolute;
}
.decoded_user_name {
font-weight:bold;
}
.decoded_user_name, .decoded_msg {
margin-left:64px;
}
table {
text-align:center;
}
.flipped-180 {
-moz-transform: scaleX(-1);
-o-transform: scaleX(-1);
-webkit-transform: scaleX(-1);
transform: scaleX(-1);
filter: FlipH;
-ms-filter:"FlipH";
}
#detailopener, #return_to_msg, #return_to_cloud, #cloudview_delete {
display:none;
}
.chat_list_names {
color:grey;
}
.invi {
position:fixed;
width:1px;
height:1px;
top:-2000px;
left:-2000px;
}
.next_page_chat_list {
text-align:right;
padding-right:5px;
}
.last_page_chat_list {
padding-left:5px;
text-align:left;
}
.loadingtext {
margin-top:7px;
}
#opener {
position:fixed;
left:25px;
bottom:25px;
cursor:pointer;
display:none;
}
.dontdroponme {
opacity:0.3;
}
#dropper {
position:fixed;
right:25px;
bottom:25px;
cursor:pointer;
display:none;
}
.dropinfo {
border-radius:7px;
color:white;
padding:5px 25px;
}
.dorpinfo img {
width:48px;
}
.chatlist_button img, .decoded_user_avatar {
box-shadow:0 0 5px #888;
border-radius:5px;
}
.chatlist_button {
background-color:white;
border-radius:5px;
box-shadow:0 0 5px #888;
padding:5px;
cursor:move;
max-width:200px;
margin:auto;
}
.ui-draggable-dragging {
position:absolute;
z-index:5;
}
body {
height:100%;
margin:0;
background-color:#3B5998;
color:white;
font-size:12px;
font-family:Calibri;
}
#innerbody {
margin:auto;
width:55%;
text-align:center;
}
#innerbody_floater {
height:50%;
width:100%;
margin:0;
}
Copy from http://www.w3schools.com/css/css_positioning.asp
An absolute position element is positioned relative to the first parent element that has a position other than static. If no such element is found, the containing block is html:
I am trying to get a string with each individual letter rotated 90 degrees; however, I want to keep the "flow" of letters going left-to-right, not vertical. I also want to keep that "strikethrough" horizontal green line (see images below).
What's the simplest way to accomplish this? I prefer using JavaScript and/or CSS.
With the -transform: rotate CSS style I get the following:
<style type="text/css">
.rotate {
-webkit-transform: rotate(-90deg);
}
</style>
<body>
<div class="rotate">
<span style="color:#0C0; text-decoration:line-through;">
<span style="color:#000;">
A B C
</span></span></div>
What I would like to get is something like this, without resorting to a custom font.
Pure CSS:
<div class="letters">
<span>A</span><span>B</span><span>C</span>
</div>
.letters {
height:8px;
line-height:16px;
border-bottom:1px solid green;
position:relative;
}
.letters > span {
float:left;
-webkit-transform: rotate(-90deg);
}
Demo
Here's some js that should do the trick: http://jsfiddle.net/AYGDR/8/
$(function() {
$(".target").html(("<span>" + $(".target").html().split(" ").join("</span><span>") + "</span>"));
var rotate = 0;
$(".target span").each(function() {
rotate = rotate - 90
$(this).css({
"-webkit-transform": "rotate(" + rotate + "deg)",
"display": "inline-block"
});
});
});
And I accidentally threw in some bonus shifting rotation since I imagined that was part of the question.
my CSS:
<style>
span[class^="rot"]:not([char]):before{
content: '\27b7'; }
span[class^="rot"][char]:before{content: attr(char);}
span[class^="rot"] { position: relative; }
span[class^="rot"]:before {
position: relative; display: inline-block;
font-weight: bold; font-size: 16px; line-height:16px;
font-family: Tahoma, Verdana, sans-serif;
margin:0;padding:0;
width:16px;height:16px;
}
.rot-90:before { transform: rotate(-90deg); }
.rot90:before { transform: rotate(90deg); }
.rot45:before { transform: rotate(45deg); }
.rot-45:before { transform: rotate(-45deg); }
.rot180:before { transform: rotate(180deg); }
</style>
<p>
A long time <span class=rot90 style="color: green"></span> ago in a
<span class=rot-45 char="G"></span>alax<span class=rot180 char="y"></span>
<span class=rot-90 char="F"></span>ar far
a<span class=rot45 char="w"></span>way
This works in latest version of chrome
<span style="color:#000; display: inline-block; max-width: 10px;">
A B C
</span>
only wrote the innermost span though