Hi,
Mehrdad2020, I think I would have to disagree with you on this. Every single module must contain divs and css classes in order for them to work out of the box. Other CMS platforms try to get around this but really all they end up with is a very confusing skinning engine.
As far as your menu goes, you can ignore the classes that are applied to it by default and wrap the menu in a div or whatever you want with your own css class. As this point, you can style the menu as if the mojo-generated classes aren't even there. For instance, here is the HTML generated for the Site Menu on a client site:
<div id="ctl01_SiteMenu1_ctl00" class="AspNet-Menu-Horizontal">
<ul class="AspNet-Menu">
<li class="AspNet-Menu-Leaf AspNet-Menu-SelectedLeaf">
<a class="AspNet-Menu AspNet-Menu-SelectedLeaf" href="/home.aspx">
Home
</a>
</li>
<li class="AspNet-Menu-Leaf">
<a class="AspNet-Menu" href="/about-us.aspx">
About Us
</a>
</li>
<li class="AspNet-Menu-Leaf">
<a class="AspNet-Menu" href="/intersection-blog.aspx">
Intersection Blog
</a>
</li>
<li class="AspNet-Menu-Leaf">
<a class="AspNet-Menu" href="/ministry.aspx">
Ministry
</a>
</li>
<li class="AspNet-Menu-Leaf">
<a class="AspNet-Menu" href="/news-events.aspx">
News & Events
</a>
</li>
</ul>
</div>
If I didn't want to use the default classes, I could easily wrap the menu a different element, with my own class(I will use a div for this example):
<div class="myMenu">
<div id="ctl01_SiteMenu1_ctl00" class="AspNet-Menu-Horizontal">
<ul class="AspNet-Menu">
<li class="AspNet-Menu-Leaf AspNet-Menu-SelectedLeaf">
<a class="AspNet-Menu AspNet-Menu-SelectedLeaf" href="/home.aspx">
Home
</a>
</li>
<li class="AspNet-Menu-Leaf">
<a class="AspNet-Menu" href="/about-us.aspx">
About Us
</a>
</li>
<li class="AspNet-Menu-Leaf">
<a class="AspNet-Menu" href="/intersection-blog.aspx">
Intersection Blog
</a>
</li>
<li class="AspNet-Menu-Leaf">
<a class="AspNet-Menu" href="/ministry.aspx">
Ministry
</a>
</li>
<li class="AspNet-Menu-Leaf">
<a class="AspNet-Menu" href="/news-events.aspx">
News & Events
</a>
</li>
</ul>
</div>
</div>
At this point, I can create the CSS selectors however I want:
.myMenu {float: left; background-color: green;}
.myMenu ul {margin: 0; padding: 0;}
.myMenu ul ul {margin: 0; padding: 0 0 0 5px;}
.myMenu a {color: blue; text-decoration: none;}
.myMenu a:hover {color: white; text-decoration: underline;}
.myMenu li.AspNet-Menu-SelectedLeaf {background-color: purple; font-weight: bold; color: white;}
The only class I would need to use is the selected item class of 'AspNet-Menu-SelectedLeaf.
All of this said, I don't really understand why this is an issue. If you need a different set of classes rendered for easy compatibility with some jQuery plugin or something like that, that would be a different story. To just want the menu rendered without classes doesn't make a lot of sense to me because you can just remove all of the CSS selectors in your skin stylesheets that have to do with the menu and you would end up with an un-styled menu regardless of the fact that the menu elements have classes.
HTH,
Joe D.