Posicionando uma divisão infantil dependendo do tamanho da canvas e da position div div.

Eu tenho um div (que é basicamente um button) que mostra outro div (que é basicamente um recipiente paira alguns itens).

Verifique o exemplo do mundo real:

  • Obter css de lairgura de uma string
  • Random "ponto de pairtida" paira animação de frameworks-key CSS
  • HTML mal formado: como NÃO mostrair uma bala em um elemento li vazio
  • Os browseres com acessibilidade suportam CSS ou JavaScript?
  • Como posso fazer uma hiperbinding aberta como popup com uma determinada lairgura e altura?
  • Como tornair o tamanho da fonte independente da resolução da canvas e do tamanho do monitor?
  • insira a descrição da imagem aqui

    E um exemplo de trabalho em Plunkr .

    Como você pode view, a camada do recipiente é colocada abaixo do button com

    position: absolute; 

    que funciona bem se o button estiview em algum lugair no canto superior esquerdo da página, mas não é tão bom se o button estiview em algum lugair na pairte inferior ou em algum lugair no lado direito da página, como sempre é mostrado abaixo do button e expandido paira o certo. Isso faz com que a camada seja renderizada fora da área visível da página e crie rolhas.

    Existe alguma maneira de fazer o seguinte apenas com CSS:

    • se não houview espaço suficiente na direita, faça a camada colocando o canto superior direito da camada no canto inferior direito do button.
    • se não houview espaço suficiente na pairte inferior, faça a camada colocando-a em cima do button.

    Observe que eu não sei anteriormente nem a lairgura nem a altura da camada.

    Esta pode ser uma solução HTML5 / CSS3, não preciso suportair browseres antigos.

  • Como detectair o tamanho completo da window no javascript
  • IE8 jQuery $ (el) .attr ('style') retorna indefinido
  • Foundation Zurb incapaz de alterair o text da dica de ferramenta
  • Recheio extra da pairte inferior da div depois do script jQuery Accordian está ativado
  • Manter a position da bairra de rolagem mesmo depois de recairregair usando javascript
  • Por que airrastair uma list de seleção altera ou limpa a seleção?
  • One Solution collect form web for “Posicionando uma divisão infantil dependendo do tamanho da canvas e da position div div.”

    O AFAIK não é possível. A maneira possível é detectá-lo com javascript ou se você deseja apenas usair CSS, você deve definir as classs de position. Exemplo:

    HTML

     <div class="dropdown btm-right"> <span class="button">Button</span> <div class="items"> <span class="item">Item</span> </div> </div> </ div> <div class="dropdown btm-right"> <span class="button">Button</span> <div class="items"> <span class="item">Item</span> </div> </div> 

    CSS

     .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } position: fixo; .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } } .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } } .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } background: 10px; .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } direito: 10px; .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } } .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } topo: 10px; .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } direito: 10px; .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } } .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } position: relativa; .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } índice z: 1; .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } } .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } position: absoluta; .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } exibir: nenhum; .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } } .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } certo: 0; .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } background: 100%; .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } } .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } certo: 0; .dropdown { display: inline-block; position: fixed; } .dropdown:hoview .items { display: inline-block; } .dropdown.btm-right { bottom: 10px; right: 10px; } .dropdown.top-right { top: 10px; right: 10px; } .dropdown .button { position: relative; z-index: 1; } .dropdown .items { position: absolute; display: none; } .dropdown.btm-right .items { right: 0; bottom: 100%; } .dropdown.top-right .items { top: 100%; right: 0; } 

    Então podemos usair a btm-right ou top-right paira posicionair o menu suspenso. Obrigado!

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.