Новый browser и JavaScript
От: c-smile Канада http://terrainformatica.com
Дата: 08.12.04 04:15
Оценка:
Рождается новый browser и в связи с этим несколько вопросов.

Сначала о тех фичах которые есть:

1) HTML/XHTML и CSS — level 2.1 (не всё) + level 3 (не все, всякие полезные штуки оттуда)
см. здесь и здесь.

2) Градиетнтный background, expandable image (например закругленные бордюры и пр.), см.
здесь. Поддержка alpha канала.

3) %% units — позволяют делать vertical alignment и flex в стиле XUL. здесь

4) flow:horizontal — размещение блоков слева направо в контейнерах (flow:vertical — стандартное поведение DIV контейнера — сверху вниз)

5) Кроме поддержки position:relative/absolute/fixed добавлено также position:popup — создание не блокирующих popup окон типа menu и tooltip.

6) lightweight frames — например absolute div в контейнере может быть рамещен поверх дочернего frame.
<frameset> аналогичен <iframe> т.е. может быть включен в любое место HTML (а не как отдельная сущность)

7) display: inline-block из CSS2.1 имплементирован — кстати ни один броузер из большой тройки эту фичу так и не поддерживает (за искл. частично IE).

8) CSS атрибут behavior:name-of-js-object. Где name-of-js-object есть JS конструкция
<STYLE>
  behavior:my_button_class;
  ....
<SCRIPT>
  var my_button_class = 
  {
    onclick: function() {....},
    onblur: function() {....}    
    ....
  }


9) селекторы вида DIV:active работают для всех элементов а не только для A


Вопросы:

1) Какие еще фичи хотелось бы видеть?
2) Требутся ли расширение набора <input> типов? Например <input type="number" spin="true">.

И один принципиальный вопрос про JS:

Пользуется ли народ кострукциями prototype в быту?
Например:
String.prototype.mymethod = function() { something }
// invocation:
"one".mymethod();


Пока в моей версии JS я обошелся без prototype, т.е. то же самое описывается как:

String.mymethod = function() { something }
// invocation:
"one".mymethod();


Зачем было введено свойство prototype мне не ведомо. Идеи есть?

Кстати есть конструкция property (то же что и function только вызов ея устроен по другому. )

 MyClass.myproperty = 
   property(val) 
     { 
       if(isExists(val)) // 'set' invocation
         this.val = val;
       return this.val; // either 'get' or 'set' invocation
     }
 // invocation:
 myclassinst.myproperty = "one";// set
 var s = myclassinst.myproperty; // get


Сам броузер (main window layout) описан полностью в HTML/CSS/JS т.е. скины на него это просто HTML со товарищи.

Кстати все стандартные <input> widgets поэлементно описываемы в CSS. Например фрагмент описания scrollbar:

scrollbar[type="vertical"]>.thumb
{
    width:100%%;
    min-height: 15px;
    border-left: 1px solid #C5C7C7;
    background-color:transparent;
    background-image:url(res:thumb-v-normal.png);
    background-position:50% 50%; /* center middle */
    background-repeat:no-repeat;
}

scrollbar[type="vertical"]>.thumb:hover
{
    background-color: #B1C4D9;
    border-top: 1px solid #CCD9E9;
    border-left: 1px solid #CCD9E9;
    border-right: 1px solid #90A5C3;
    border-bottom: 1px solid #90A5C3;
    background-image:url(res:thumb-v-hover.png);
}


Вот реальный screenshot с такими scrollbars:


Если кто дочитал до этого места — большое человеческое спасибо. Комментарии очень нужны.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.