IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Insérer une ligne verticale dans une div


Sujet :

Tableau en CSS

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Points : 74
    Points
    74
    Par défaut Insérer une ligne verticale dans une div
    Bonjour,
    Je souhaite insérer une ligne verticale dans une div dont je ne connais pas la hauteur à l'avance.
    Je pensais faire comme suite, mais le problème est que je dois apparemment mettre height en pixel (dans .content:after), si je mets en pourcentage cela ne fonctionne pas...
    Une idée?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    .content {
    	position: relative;
    	margin: auto !important;
    	width: 67% !important;
    	font-size: 18px !important;
    	font-weight: normal !important;
    	color: #555554;
    	background-color: #FFF;
    	border-top : 1px solid #e7e6e6; 
    	border-bottom: 1px solid #e7e6e6; 
    }
    .content:after {
    	position: absolute;
    	content: '';
    	width: 1px;
    	height: 100%;
    	top: 0;
    	bottom: 0;
    	left: 50%;
    	border: 1px solid black;
    }

  2. #2
    Membre régulier
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Juillet 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Juillet 2016
    Messages : 65
    Points : 103
    Points
    103
    Par défaut Insérer une ligne verticale dans une div
    Salut,

    Non ton code est bon c'est juste que de base ta div .content a une height de 0 et donc ton :after ne s'affiche pas, si tu mets une min-height à .content ou que tu la rempli un peu de texte ta ligne verticale apparaîtra bien.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Points : 74
    Points
    74
    Par défaut
    Merci pour ta réponse mais pourtant j'ai bien du texte (et meme des images) dans ma div .content ...
    J'ai essayé le min-height mais sans succès.. en plus ça me réduit mon .content en hauteur alors que ce n'est pas ce que je veux...
    Le pire c'est que je vois le plus point noir en haut de mon content mais le trait ne descend pas plus bas..

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Points : 74
    Points
    74
    Par défaut
    J'utilise aussi Bootstrap pour avoir un contenu à droite et à gauche.. c'est peut-être à cause de ça que cela ne marche pas?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/ du code CSS n'a d'intérêt qu'avec le code HTML associé.

    2/ Si tu ne nous montres pas un exemple fonctionnel, reproduisant le problème, on ne peut rien de plus pour toi.

    3/ Et explique-nous aussi le but de la manoeuvre : il existe peut-être une meilleure solution.

    4/
    Citation Envoyé par soeursourire Voir le message
    ...Bootstrap pour avoir un contenu à droite et à gauche..
    C'est-à-dire ? code ? copie d'écran ? ...

    5/ enfin, si c'est juste une ligne :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    	border-left: 1px solid black;

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Points : 74
    Points
    74
    Par défaut
    Ok alors voici mon soucis et un code plus simple pour vous montrer:

    J'ai une div content qui contient deux (voir 3) sous contenus (content-left et content-right).
    Je ne sais pas à l'avance ce que contiendra chaque sous contenu en taille (donc je ne connais pas leur hauteur).
    Mais mes sous-contenus ont une bordure (donc j'ai mis une bordure en haut et en bas de content, ça c'est bon) mais je dois aussi avoir une séparation entre mes deux sous-contenus (et bien sûr qu'en cas d'écran assez large parce que si je passe en smartphone la séparation verticale doit disparaitre.

    Donc pour avoir des sous-contenus de meme hauteur, il y avait comme solution: utiliser table-cell display (impossible pour moi car je suis en responsive), ajouter la ligne verticale avec .content:after... ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    <html>
    <head>
    <!--script>alert('tot\'o')</script-->
    <style>
    .content {
    	position: relative;
    	margin: auto !important;
    	width: 67% !important;
    	font-size: 18px !important;
    	font-weight: normal !important;
    	color: #555554;
    	background-color: #FFF;
    	border-top : 1px solid #e7e6e6; 
    	border-bottom: 1px solid #e7e6e6; 
    }
    .content:after {
    	position: absolute;
    	content: '';
    	width: 1px;
    	height: 100%;
    	top: 0;
    	bottom: 0;
    	left: 50%;
    	border: 1px solid black;
    }
    .content-left {
    	float: left;
    }
    .content-right {
    	float: right;
    }
    </style>
    </head>
    <body>
    <div class="content">
    	<div class="content-left">
    		blgfrfhggfhgf
    		thgfh<br>
    		fdhghf<br>
    		thgfh<br>
    		fdhghf<br>
    		thgfh<br>
    		fdhghf<br>
    	</div>
    	<div class="content-right">
    		blgfrfhggfhgf
    		thgfh
    		fdhghf
    	</div>
    </div>
    </body>
    </html>
    Peut-être que la solution est plutôt de passer par ce code:

    utiliser ce code quand l'écran est plus grand que le smartphone:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @media (min-width: 768px){
    	.content{
    		display: -webkit-box;
    		display: -webkit-flex;
    		display: -ms-flexbox;
    		display: flex;
    	}	
    }

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bon.

    Les éléments flottants (float) "sortent" du flux.

    Il existe plusieurs moyen de rétablir le flux : Rétablir le flux après des éléments flottants en CSS sans balise HTML supplémentaire

    1/ Le plus simple :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    .content {
    	overflow:hidden;
    ...
    }
    .content:after {
    ...
    	border-left: 1px solid black;
    }

    2/ un autre : ajouter une classe "clearfix" :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="content clearfix">
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .clearfix:before, .clearfix:after { display:table; content:""; }
    .clearfix:after { clear:both; }
    MAIS dans ton cas précis, ça ne fonctionne pas, puisque tu utilises DEJA :after...

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/04/2013, 21h06
  2. Réponses: 3
    Dernier message: 29/03/2011, 20h38
  3. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  4. Comment tracer une ligne verticale dans un graphique
    Par developpeur82 dans le forum MATLAB
    Réponses: 3
    Dernier message: 03/04/2007, 14h06
  5. Insérer une ligne automatiquement dans une autre tab
    Par davyd dans le forum Langage SQL
    Réponses: 10
    Dernier message: 29/03/2005, 17h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo