1. A method for creating an in-browser visual HTML editor by setting “contentEditable” attribute to “true” for a top level HTML element to be edited or body element of an html page if whole web page is to be edited, the method comprising: detecting a lowest level of HTML element at a caret, a caret is a point of text insertion, a web browser provides one single caret referred to as the caret, an HTML element is a lowest level element if it does not contain child HTML elements, a lowest level HTML element is referred to as a base-element, a base-element at the caret is referred to as the base-element; creating a list to show a text representation of the base-element and a text representation of each level of parent elements of the base-element; detecting item selection change of the said list to get an HTML element selection which is referred to as the selected HTML element or the selected element; creating areas to hold command-buttons specific to said selected HTML element, referred to as element-command-area; creating a table for displaying and editing all attributes of said selected HTML element, said table has one column for displaying attribute names and one column for displaying and editing attribute values; said table is referred to as “a Property Grid”; in said table there is one row displaying a virtual property for grouping CSS styles, it is referred to as a “virtual” property because it is not a property specified by standard HTML specifications and it works like a command by following definition: when a user sets a value to said virtual property the value is used as a class name by said selected HTML element, the class name indicated by original value of said virtual property value is removed from class names of said selected HTML element; said virtual property is referred to as “style name”.
1. A method for creating an in-browser visual HTML editor by setting “contentEditable” attribute to “true” for a top level HTML element to be edited or body element of an html page if whole web page is to be edited, the method comprising: detecting a lowest level of HTML element at a caret, a caret is a point of text insertion, a web browser provides one single caret referred to as the caret, an HTML element is a lowest level element if it does not contain child HTML elements, a lowest level HTML element is referred to as a base-element, a base-element at the caret is referred to as the base-element; creating a list to show a text representation of the base-element and a text representation of each level of parent elements of the base-element; detecting item selection change of the said list to get an HTML element selection which is referred to as the selected HTML element or the selected element; creating areas to hold command-buttons specific to said selected HTML element, referred to as element-command-area; creating a table for displaying and editing all attributes of said selected HTML element, said table has one column for displaying attribute names and one column for displaying and editing attribute values; said table is referred to as “a Property Grid”; in said table there is one row displaying a virtual property for grouping CSS styles, it is referred to as a “virtual” property because it is not a property specified by standard HTML specifications and it works like a command by following definition: when a user sets a value to said virtual property the value is used as a class name by said selected HTML element, the class name indicated by original value of said virtual property value is removed from class names of said selected HTML element; said virtual property is referred to as “style name”. 2. The method of claim 1 , further comprising of a process of creating CSS virtual properties for the selected element defined in claim 1 for CSS styles supported by the selected element defined in claim 1 , their values are shared between some elements in a way as defined below in this claim; each CSS virtual property is for a CSS style of the selected element defined in claim 1 ; each CSS virtual property is created for a CSS style with selector of said CSS style defined below: selector for said CSS styles is determined by tag name of the selected HTML element and value of “style name” of claim 1 ; if “style name” of the selected element defined in claim 1 is empty then the selector is the tag name of the selected element defined in claim 1 ; if “style name” of the selected element defined in claim 1 is not empty then the selector is the tag name of the selected element defined in claim 1 followed by a dot and followed by “style name” of the selected element defined in claim 1 ; value of a CSS virtual property is computed value of said CSS style; when a user sets a value to a CSS virtual property, the value is used as style value of said CSS style, if the value is empty or equals to default value according to standard HTML specifications for said CSS style then the style is removed from Cascade Style Sheet.