Visual estranho - CSS
[img]http://arquivo.devmedia.com.br/forum/imagem/362748-20141020-182620.jpg[/img]
Janaina Mendes
Respostas
Marcelo Pastore
20/10/2014
Bruno Santana
20/10/2014
Janaina Mendes
20/10/2014
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login</title>
<link rel="stylesheet" href="css/global.css">
</head>
<body>
<form method="post" id="login_form">
<fieldset id="fieldset_login">
<legend>Login do Sistema</legend>
<div class="campo">
<div class="label">
<label for="login">Login</label>
</div>
<input type="text" id="login" name="login" maxlength="15" />
</div>
<div class="campo">
<div class="label">
<label for="senha">Senha</label>
</div>
<input type="password" id="login" name="senha" maxlength="15" />
</div>
<div class="campo">
<input type="submit" value="logar" />
</div>
<div class="campo">
<a href="">Esqueci a senha</a>
</div>
</fieldset>
</form>
</body>
</html>
css
@CHARSET "ISO-8859-1";
body,input {
font-family: Segoe UI, Arial, Times;
font-size: 12pt;
}
input[type=text],input[type=password] {
width: 200px;
}
input[type=submit] {
width: 100px; font-weight : bold;
padding: 2px 10px;
font-weight: bold;
}
fieldset#fieldset_login {
margin: auto;
width: 280px;
padding: 50px;
}
.label {
float: left;
text-align: right;
line-height: 1.9em;
padding-right: 2px;
}
.campo input {
float: right;
}
.campo a {
padding-right: 60px;
float: right;
padding-top: 10px;
}
.main {
min-height: 500px;
}
.rodape {
padding: 5px;
border-top: 1px dotted gray;
}
.cabecalho a {
text-decoration: none;
}
Janaina Mendes
20/10/2014
Janaina Mendes
20/10/2014
Pessoal, me ajudem.
Marcelo Pastore
20/10/2014
Marcelo Pastore
20/10/2014
Janaina Mendes
20/10/2014
Janaina Mendes
20/10/2014
Soeuseijothaz
20/10/2014
Não tenho expertise em css, contudo já passei por um problema parecido.
Resolvi usando de uma lógica suína, fuçando para ver o que dá.
Ante só um aviso seus campos login e senha estão com o ID igual o que não é recomendado, então é melhor trocar.
Vamos a solução que eu dei.
No CSS , inclui position:absolute em .label:
.label
{
position:absolute;
float: left;
text-align: right;
line-height: 1.9em;
padding-right: 2px;
}
No HTML inclui um <br/> entre os campos:
<div class="campo">
<div class="label">
<label for="login">Login</label>
</div>
<input type="text" id="login" name="login" maxlength="15" />
</div>
<br />
<div class="campo">
<div class="label">
<label for="senha">Senha</label>
</div>
<input type="password" id="senha" name="senha" maxlength="15" />
</div>
O resultado:
[img]http://arquivo.devmedia.com.br/forum/imagem/238223-20141108-221031.png[/img]
O puristas podem achar que estou cometendo heresia! kkkk
E pode existir uma solução mais elegante, eu não consegui achar e olha que pesquisei bastante.
Espero que lhe ajude.
Janaina Mendes
20/10/2014
[img]http://arquivo.devmedia.com.br/forum/imagem/362748-20141109-130536.jpg[/img]
Soeuseijothaz
20/10/2014
Você este desenvolvendo em qual linguagem?
Esta usando qual browser?
Segue todos os códigos que usei. Tente usá-lo e veja se muda alguma coisa.
HTML:
<fieldset id="fieldset_login">
<legend>Login do Sistema</legend>
<div class="campo">
<div class="label">
<label for="login">Login</label>
</div>
<input type="text" id="login" name="login" maxlength="15" />
</div>
<br />
<div class="campo">
<div class="label">
<label for="senha">Senha</label>
</div>
<input type="password" id="senha" name="senha" maxlength="15" />
</div>
<div class="campo">
<input type="submit" value="logar" />
</div>
<div class="campo">
<a href="">Esqueci a senha</a>
</div>
</fieldset>
CSS:
body,input {
font-family: Segoe UI, Arial, Times;
font-size: 12pt;
}
input[type=text],input[type=password] {
width: 200px;
}
input[type=submit] {
width: 100px; font-weight : bold;
padding: 2px 10px;
font-weight: bold;
}
fieldset#fieldset_login {
margin: auto;
width: 280px;
padding: 50px;
}
.label
{
position:absolute;
float: left;
text-align: right;
line-height: 1.9em;
padding-right: 2px;
}
.campo input {
float: right;
}
.campo a {
padding-right: 60px;
float: right;
padding-top: 10px;
}
.main {
min-height: 500px;
}
.rodape {
padding: 5px;
border-top: 1px dotted gray;
}
.cabecalho a {
text-decoration: none;
}
Com os códigos acima funcionou tanto no Chrome:
Soeuseijothaz
20/10/2014
[img]http://arquivo.devmedia.com.br/forum/imagem/238223-20141109-170424.png[/img]
Como no IE:
[img]http://arquivo.devmedia.com.br/forum/imagem/238223-20141109-170451.png[/img]
Bom vamos continuar os teste.
Soeuseijothaz
20/10/2014
Fiz outros teste aqui e pelo que vi o problema esta no line-height:
Orignalmente estava em:
line-height: 1.9em;
Alterei para 1.7em; e funcionou, ficando assim:
.label
{
float: left;
text-align: right;
line-height: 1.7em;
padding-right: 2px;
}
Faça este teste e veja se funciona.
E claro pode retirar a linha position:absolute; e o <br/> do html.
Fico no aguardo.
Wellington Silva
20/10/2014
Janaina Mendes
20/10/2014
Janaina Mendes
20/10/2014
Soeuseijothaz
20/10/2014
Uma forma simples incluir um <br/> entre os inputs:
<div class="campo">
<div class="label">
<label for="login">Login</label>
</div>
<input type="text" id="login" name="login" maxlength="15" />
</div>
<br /><br />
<div class="campo">
<div class="label">
<label for="senha">Senha</label>
</div>
<input type="password" id="senha" name="senha" maxlength="15" />
</div>
Janaina Mendes
20/10/2014
Soeuseijothaz
20/10/2014
Não me leve mal, mas estou achando este html meio confuso. Acho que não precisa de tantas div´s assim. Claro que é sempre recomendado usá-las, contudo em demasia é quase tão ruim quanto usar table.
Vou fazer em exemplo aqui e posto.
Tem como esperar um tempo?
Soeuseijothaz
20/10/2014
Html:
<fieldset id="fieldset_login">
<legend>Login do Sistema</legend>
<div>
<label for="login">Login</label>
<input type="text" id="login" name="login" maxlength="15" />
</div>
<div>
<label for="senha">Senha</label>
<input type="password" id="senha" name="senha" maxlength="15" />
</div>
<div>
<input type="submit" value="logar" />
<a href="">Esqueci a senha</a>
</div>
</fieldset>
Css:
* {margin:0; padding:0;}
html {
font: 90%/1.3 arial,sans-serif;
padding:1em;
background:#fafafa;
}
body,input {
font-family: Segoe UI, Arial, Times;
font-size: 12pt;
}
form {
background:#fff;
padding:1em;
border:1px solid #eee;
}
fieldset#fieldset_login {
border:1px solid #ddd;
padding:5em 5em 5em 5em;
margin: auto;
width: 20em;
}
fieldset div
{
float: left;
margin:0.3em 0;
clear:both;
}
fieldset a {
padding-right: 60px;
float: left;
padding: .5em 0 1em 5em;
display:inline;
}
label {
float:left;
width:5em;
text-align:right;
margin-right:1em;
}
input[type=text],input[type=password] {
padding:0.15em;
width:10em;
border:1px solid #ddd;
background:#fafafa;
-moz-border-radius:0.4em;
-khtml-border-radius:0.4em;
}
input:hover, input:focus {
border-color:#c5c5c5;
background:#f6f6f6;
}
legend {
color:#000;
font-size:1.2em;
}
input[type=submit]
{
float: left;
width: 100px;
font-weight : bold;
padding: 2px 10px;
font-weight: bold;
display:inline;
cursor:pointer !important; cursor:hand;
}
input[type=submit]:hover {
background-position:0 -26px;
}
.clear
{
clear:both;
border: 1px solid red;
}
Janaina Mendes
20/10/2014
Janaina Mendes
20/10/2014
.label
{
float: left;
text-align: right;
line-height: 1.7em;
padding-right: 2px;
}
eu te agradeço mesmo pela força que está me dando.
Soeuseijothaz
20/10/2014
.label
{
float: left;
text-align: right;
line-height: 1.7em;
padding-right: 2px;
}
eu te agradeço mesmo pela força que está me dando.
Como já lhe disse o exemplo que você postou esta abordando a questão de uma forma complicada. Não é necessário ter div´s para label e para os inputs, isto só complica o html e dificulta o entendimento e manutenção. Não sei se é o caso, mas as vezes quando baixamos exemplos da internet para estudar eles vem com erro. No post/vídeo funciona mas no exemplo baixado não.
Só como informação no exemplo de css que enviei é basicamente o seu só que simplificado. Ele é um pouca maior que o que você postou porque faço um reset nos controles, formato o form, coloquei alguns efeitos aos receber e perder o foco e um clear pra div´s.
Posso tentar usar os mesmos seletores do seu exemplo original, mas vai haver mudança, pois como foi visto da forma que esta não funciona.
Se você puder esperar, posto o resultado depois
Janaina Mendes
20/10/2014
Soeuseijothaz
20/10/2014
Mas isso também não nenhuma heresia é que eu sou velho e ranzinza então acabo querendo simplificar as coias.
Tem como esperar para ver se consigo concerta o exemplo original, inclusive deixando a sopa de div´s?
Soeuseijothaz
20/10/2014
Html:
<fieldset id="fieldset_login">
<legend>Login do Sistema</legend>
<div class="campo">
<div class="label">
<label for="login">
Login</label>
</div>
<input type="text" id="login" name="login" maxlength="15" />
</div>
<div class="campo">
<div class="label">
<label for="senha">
Senha</label>
</div>
<input type="password" id="login" name="senha" maxlength="15" />
</div>
<div class="campo">
<input type="submit" value="logar" />
</div>
<div class="campo">
<a href="">Esqueci a senha</a>
</div>
</fieldset>
Css:
body,input {
font-family: Segoe UI, Arial, Times;
font-size: 12pt;
}
input[type=text],input[type=password] {
width: 200px;
}
input[type=submit] {
width: 100px; font-weight : bold;
padding: 2px 10px;
font-weight: bold;
}
fieldset#fieldset_login {
margin: auto;
width: 280px;
padding: 50px;
}
.label {
float: left;
text-align: right;
line-height: 1.9em;
padding-right: 2px;
}
.campo {
float: right;
}
.campo a {
padding-right: 60px;
float: right;
padding-top: 10px;
}
.main {
min-height: 500px;
}
.rodape {
padding: 5px;
border-top: 1px dotted gray;
}
.cabecalho a {
text-decoration: none;
}
Resultado:
[img]http://arquivo.devmedia.com.br/forum/imagem/238223-20141111-165706.png[/img]
Uma das coisas mais difíceis é entender a lógica alheia, ainda mais quando você não concorda em todo com ela.
Mantive tudo igual ao original, mais uma vez ressalto que não é a forma de fazer, com a sopa de div´s e tudo.
O problema era o seguinte, onde estava:
.campo input {
float: right;
}
Deve ficar:
.campo {
float: right;
}
Do jeito que estava a linah <div class="campo"> era nula pois não existia esta classe, como css não retorna erro simplesmente não faz o esperado.
No a referência .campo input aplicava-se somente ao controle imput e dai cagava tudo.
Qualquer coisa é só se manifestar.
Janaina Mendes
20/10/2014
Soeuseijothaz
20/10/2014
De nada. Precisando estamos ai!
Claro se você esta acompanhando um curso é melhor manter os exemplos.
E css, nem digo que é complicado, mas requer muita atenção.
Uma dica é colocar borda nas divs para ver como elas estão sendo renderizadas depois retire.
border:1px solid red;
Isto facilita muito.
Janaina Mendes
20/10/2014