Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Centrare block DIV

  1. #1

    Centrare block DIV

    Salve, vorrei centrare il seguente div, in fondo alla mia pagina, e deve restare fisso. voglio i bordi in alto, destra e sinistra...

    praticamente fa tutto quello che deve fare ma non me lo centra, me lo attacca al bordo di sinistra.

    codice:
    <style>
    .question_alert_box {
    margin-left: auto ;
    margin-right: auto ;
    width:90%;
      border-style:solid;
      border-left-color:black;
      border-right-color:black;
      border-top-color:black;
      border-bottom-color:none;
    background:white;
    color:#000000;
    font-weight:bold;
    padding:2px;
    padding-top:2px;
    padding-left:2px;
    padding-right:2px;
    padding-bottom:2px;
    text-decoration:none;
    position: fixed;
    z-index: 2; 
    bottom: 0px;
    }
    </style>
    ho letto che per centrare orizzontalmente bisogna mettere i margini left e right ad auto..
    ma non mi funziona, forse mi va in conflitto con qualche altra cosa che ho scritto nel codice...

    potete aiutarmi ?

    grazie.

  2. #2
    codice:
    <style type="text/css">
    .question_alert_box {
    width:90%;
      border-style:solid;
      border-left-color:black;
      border-right-color:black;
      border-top-color:black;
      border-bottom-color:none;
    background:#FFFFFF;
    color:#000000;
    font-weight:bold;
    padding:2px;
    text-decoration:none;
    position: fixed;
    z-index: 2; 
    bottom: 0px;
    margin: 0 5% 0 5%;
    }
    </style>
    “Che le cose siano cosi, non vuol dire che debbano andare così. Solo che quando si tratta di rimboccarsi le maniche e incominciare a cambiare, vi è un prezzo da pagare. Ed è allora che la stragrande maggioranza preferisce lamentarsi più che fare”.

    Giovanni Falcone

  3. #3
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, il position:fixed sottrae l'elemento dal normale flusso del documento, slegandolo dagli elementi circostanti. Per questo motivo l'impostazione dei margini non ha l'effetto desiderato.

    Assieme al position:fixed puoi utilizzare le proprietà left e right, in questo caso usando un valore percentuale, per "allontanare" il div dai lati del contenitore.
    Da precisare però, dal momento che altre proprietà del div stesso (come border, padding, ecc.) possono creare conflitti se ne viene specificato il width, è meglio se il browser calcoli automaticamente la larghezza totale di tale elemento. Basterà non specificare alcun width.

    Inoltre, diverse regole del tuo css possono essere ottimizzate utilizzando delle forme contratta.

    Un esempio pratico:
    codice:
    <!DOCTYPE HTML>
    <html>
      <head>
        <title>Esempio</title>
        <meta charset="utf-8">
        <style type="text/css">
          body{
            background: Tan;
          }
          .question_alert_box {
            padding: 2px;
            border:solid black;
            border-width: 2px 2px 0;
            background: White;
            color: Black;
            font-weight: bold;
            text-decoration: none;
            z-index: 2; 
            position: fixed;
            bottom: 0;
            
            /* con left e right a 5%, risulta una larghezza totale dell'elemento del 90% */
            left: 5%; 
            right: 5%;
          }
        </style>
      </head>
      <body>
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id 
        <div class="question_alert_box">est laborum.</div>
      </body>
    </html>
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    @carlomarangoni, in effetti può andare bene anche il margin col 5% però restano i difetti creati dal width (come ho indicato).
    Ultima modifica di KillerWorm; 23-11-2014 a 03:06
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Ciao, il position:fixed sottrae l'elemento dal normale flusso del documento, slegandolo dagli elementi circostanti. Per questo motivo l'impostazione dei margini non ha l'effetto desiderato.

    Assieme al position:fixed puoi utilizzare le proprietà left e right, in questo caso usando un valore percentuale, per "allontanare" il div dai lati del contenitore.
    Da precisare però, dal momento che altre proprietà del div stesso (come border, padding, ecc.) possono creare conflitti se ne viene specificato il width, è meglio se il browser calcoli automaticamente la larghezza totale di tale elemento. Basterà non specificare alcun width.

    Inoltre, diverse regole del tuo css possono essere ottimizzate utilizzando delle forme contratta.

    Un esempio pratico:
    codice:
    <!DOCTYPE HTML>
    <html>
      <head>
        <title>Esempio</title>
        <meta charset="utf-8">
        <style type="text/css">
          body{
            background: Tan;
          }
          .question_alert_box {
            padding: 2px;
            border:solid black;
            border-width: 2px 2px 0;
            background: White;
            color: Black;
            font-weight: bold;
            text-decoration: none;
            z-index: 2; 
            position: fixed;
            bottom: 0;
            
            /* con left e right a 5%, risulta una larghezza totale dell'elemento del 90% */
            left: 5%; 
            right: 5%;
          }
        </style>
      </head>
      <body>
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id 
        <div class="question_alert_box">est laborum.</div>
      </body>
    </html>

    Ti ringrazio, funziona egregiamente.

    Praticamente invece di mettere il bordo inferiore a none o dello stesso colore dello sfondo (per farlo scomparire) che in effetti dava un effetto molto strano, era come se tagliasse i bordi dx e sx, lo hai messo a 0 e l'effetto finale è perfetto.
    Anche la centratura.

    Grazie !

  6. #6
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Praticamente invece di mettere il bordo inferiore a none o dello stesso colore dello sfondo (per farlo scomparire) che in effetti dava un effetto molto strano, era come se tagliasse i bordi dx e sx, lo hai messo a 0 e l'effetto finale è perfetto.
    Più precisamente, il valore none (come lo hai usato nel tuo css) non è un valore consentito per la proprietà border-color e relative proprietà derivate, come border-bottom-color (vedi specifiche).

    Tutt'al più si potrebbe utilizzare il valore transparent ma non è supportato su versioni poco recenti di IE e verrebbe comunque considerato lo spessore del bordo che andrebbe a generare una sorta di "margine trasparente". La soluzione ideale, e quella comunemente più usata, è azzerare lo spessore del bordo che non serve avere visibile.

    Con border-width: 2px 2px 0; si specifica che il bordo superiore (top) e i due bordi laterali (left e right) hanno spessore 2px, mentre quello inferiore (bottom) ha spessore 0.
    Chiaramente, quelli visibili, sono influenzati dalla regola precedente, cioè border:solid black;
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.